JPA:为什么在事务提交后关闭Session?

时间:2015-04-22 06:03:30

标签: spring hibernate session jpa transactions

在下面的应用示例中,我使用JPA,@ Transactal spring annotation和jta进行事务处理。

如果我正确理解了session-per-request-with-detached-object:

  • http请求即将来临
  • 注释@Transactional的方法#1:使用openSession()打开会话并绑定到jta上下文,打开一个事务
  • 方法完成,还有事务:会话关闭,持久化上下文被清除。
  • 已完成对多个Web服务的调用
  • 执行注释@Transactionnal的方法#2:使用getCurrentSession()获取会话,并打开新事务。如果我想保存它们,我必须重新附加会话中的所有修改数据。

所以我的问题是:为什么我们不会在第一次交易结束后让会话开启。所以在第二个事务中,我们不会有te合并对象:它可以将一些“select”查询保存到数据库中。

...

0 个答案:

没有答案