Cri*_*ris 6 java spring hibernate transactions
注意到如果我想读取一些数据,如果我没有事务上下文,我将无法这样做,因为
org.hibernate.HibernateException:找不到当前线程的Session
对于读取数据,通常不需要事务.
因此,为了让Spring管理会话,即使对于只读操作,它也需要进行交易...?
这不是开销吗?
PS.I不想手动打开和关闭会话...
非常感谢.
@Transactional除了指示 spring 启动和提交事务之外,还告诉 spring 打开和关闭会话。这不是很简单,但这就是它的工作原理。因此,如果您没有@Transactional,则不会打开任何会话。以下是您的选择:
@Transactional(readOnly=true)- 目的是进行只读事务。我推荐那个EntityManager注入@PersistenceContext. 它将为每次调用打开一个新的底层会话。不是那么好的选择。但您应该考虑使用EntityManagerreadOnly=true 事务| 归档时间: |
|
| 查看次数: |
1781 次 |
| 最近记录: |