没有标记事务划分,只需通过会话加载实体

时间:2012-04-17 10:17:19

标签: java hibernate session transactions

休眠:

如果我加载一个说session.load()的实体并关闭会话而不开始交易&这样做

我经历了各种网站,但找不到任何好的解释。

1 个答案:

答案 0 :(得分:0)

  

在没有开始事务的情况下从会话加载持久化实体是对的(session.beginTransaction)

是。没关系,但是当你从数据库中获取数据时,有时候hibernate必须触发更新查询以清除污垢数据。因此,它更喜欢在事务中运行所有与DB相关的活动。

使用交易时遵循以下步骤,

  1. 开始交易。
  2. 执行您的数据库活动(选择/更新)。
  3. 关闭您的交易。
  4.   

    我们可以保持一个打开的会话(提交的事务)来帮助查看 - 延迟加载吗?

    你可以这样做,但这不是一个好方法。如果并发用户数量更多,则会出现严重的性能问题。