Hibernate 不执行条件。列表(类型)事务管理

Hibernate 不执行条件。列表(类型)事务管理,hibernate,nhibernate,transactions,icriteria,Hibernate,Nhibernate,Transactions,Icriteria,这(不是CRUD,而是只读)代码是否要求我编写事务管理 ICriteria criteria = SessionFactory.GetCurrentSession().CreateCriteria(EntityType); criteria.List<BaseEntity>(); ICriteria criteria=SessionFactory.GetCurrentSession().CreateCriteria(EntityType); 标准列表(); 否,为什么只读操作需要事

这(不是CRUD,而是只读)代码是否要求我编写事务管理

ICriteria criteria = SessionFactory.GetCurrentSession().CreateCriteria(EntityType);
criteria.List<BaseEntity>();
ICriteria criteria=SessionFactory.GetCurrentSession().CreateCriteria(EntityType);
标准列表();

否,为什么只读操作需要事务


只有当您想回滚多个写/更新/删除操作时,才需要事务。

我不能说我总是这样做,但我想说这个问题非常合理。如您所知,我们能得到的是:

如果要为查询设置默认超时以外的特定超时,或者如果要更改隔离级别,则只读操作需要事务

正如这里提到的:(小摘录)

即使我们只读取数据,我们也希望使用事务,因为使用事务可以确保从数据库获得一致的结果

所以,一般来说,如果您有通用的方法(例如,使用AOP处理Web请求),它可能会很有用