【发布时间】:2014-05-26 17:35:58
【问题描述】:
我有一个带有唯一约束的字段“nom”的表,当我测试插入表中已经存在的该字段的值时,org.hibernate.exception.ConstraintViolationException 是抛出。然后,在我坚持不懈之后,我得到了一个 Transaction already active 异常。
这是我在 Dao 类中的持久化方法
public void persist(E entity) throws Exception {
EntityTransaction tr=entityManager.getTransaction() ;
tr.begin();
entityManager.persist(entity);
tr.commit();
}
这里是我捕获异常的代码
try {
rd.persist(r);
} catch (Exception e) {
e.printStackTrace();
}
我该如何解决这个交易问题?
【问题讨论】:
-
避免使用程序化事务。请改用声明性事务。
-
我应该把@transactional注解放在哪里?
-
@Transactional注释可以放置在您的服务类上,也可以根据要求用于覆盖类级别注释的方法级别。 -
你有什么问题?
-
@macias 你可以看到编辑