hibernatenhibernatetransactionsicriteria

Does criteria.List(Type) transaction management


Does this (not CRUD, but only Read) code require me to write transaction management?

ICriteria criteria = SessionFactory.GetCurrentSession().CreateCriteria(EntityType);
criteria.List<BaseEntity>();

Solution

  • I cannot say that I do it always, But I would say that this question is pretty reasonable. As you can Transactions for read-only DB access? what we can get is:

    Transaction are required for read-only operations if you want to set a specific timeout for queries other than the default timeout, or if you want to change the isolation level.

    And as mentioned here: NHibernate Transactions on Reads (small extract)

    Even if we are only reading data, we want to use a transaction, because using a transaction ensure that we get a consistent result from the database.

    So, in general, if you have common way (e.g. Web request handling with AOP) it could be useful