【问题标题】:BeginTransaction Hibernate necessary?BeginTransaction Hibernate 有必要吗?
【发布时间】:2013-04-04 14:50:25
【问题描述】:

当您打算只执行一个查询而不删除或更新数据时,是否真的需要启动事务?

我目前正在使用带有 C3p0 的 Hibernate 4.1.9

例子,

session session = hibernateutil.getsessionfactory().opensession();
Transaction tx = session.beginTransaction();
List messages = session.createQuery("from Message m order by m.text asc").list();  
tx.commit();
session.close();

问候

【问题讨论】:

    标签: hibernate transactions


    【解决方案1】:

    The documentation 说:

    数据库或系统事务边界始终是必需的。在数据库事务之外不能与数据库进行通信(这似乎使许多习惯于自动提交模式的开发人员感到困惑)。 始终使用清晰的事务边界,即使是只读操作。根据您的隔离级别和数据库功能,这可能不是必需的,但如果您始终明确划分事务,则没有缺点。当然,单个数据库事务将比许多小事务执行得更好,即使是读取数据也是如此。

    (强调我的)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-03
      • 2012-12-14
      • 2021-11-11
      • 2016-04-24
      • 2011-06-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多