K.A*_*che 5 java hibernate jpa
我有一个表,其中字段“nom”具有唯一约束,当我测试插入表中已存在的该字段的值时,会抛出org.hibernate.exception.ConstraintViolationException 。然后,经过我的坚持,我得到了一个事务已经处于活动状态的异常。
这是我在 Dao 类中持久化的方法
public void persist(E entity) throws Exception {
EntityTransaction tr=entityManager.getTransaction() ;
tr.begin();
entityManager.persist(entity);
tr.commit();
}
Run Code Online (Sandbox Code Playgroud)
这是我捕获异常的代码
try {
rd.persist(r);
} catch (Exception e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个交易问题?
小智 3
您可以允许框架处理事务,而不是显式打开事务(就像在 spring 中您可以使用@transactional)。但如果没有,代码看起来有一个开始和一个提交(如果成功),请尝试使用 finally 在 persist 方法中添加 tr.rollback() (或者您甚至可以使用 tr 检查事务是否仍然处于活动状态) .isActive() 方法。
| 归档时间: |
|
| 查看次数: |
31074 次 |
| 最近记录: |