【发布时间】:2010-09-19 17:33:15
【问题描述】:
我目前正在使用 Hibernate 作为持久性管理器和 JPA 作为持久性管理休眠的抽象在 java 中开发应用程序。
我想知道将结果查询包装在事务周围的影响。我知道实体管理器必须为延迟获取的字段错误保持打开状态,那么所有这些事务中的事务呢?
这是一个具有交易激活/停用能力的代码示例。
public List<Exportdata> get(Integer max, EntityManager em, Boolean withTransaction) {
EntityTransaction tx = null;
try {
if (withTransaction) {
tx = em.getTransaction();
tx.begin();
}
Query query = em.createQuery("from Exportdata");
query.setMaxResults(10);
List<Exportdata> list = query.getResultList();
if (withTransaction)
tx.commit();
return list;
} catch (RuntimeException re) {
if (withTransaction)
if (tx != null && tx.isActive())
tx.rollback();
throw re;
}
}
调用该函数时,启用或禁用withTransaction有什么区别?
谢谢大家, 弗雷德
【问题讨论】:
标签: java hibernate jpa transactions