1

休眠:

如果我加载一个实体说 session.load() 并关闭会话而不开始事务并提交它会发生什么(出了什么问题)

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

4

1 回答 1

0

从会话加载持久实体而不开始事务是否正确(session.beginTransaction)

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

使用交易时请按照以下步骤操作,

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

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

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

于 2012-07-17T16:13:03.927 回答