我目前正在使用 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 有什么区别?
谢谢大家,弗雷德