gpt4 book ai didi

java - Hibernate JPA 约束冲突和事务已激活

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:46:52 27 4
gpt4 key购买 nike

我有一个表,其中的字段“nom”具有唯一约束,当我测试插入表中已存在的该字段的值时,org.hibernate.exception.ConstraintViolationException 是抛出。然后,在我坚持不懈之后,我得到了一个交易已经激活异常。

这是我在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();
}

如何解决这个交易问题?

最佳答案

您可以允许框架处理事务,而不是显式打开事务(就像在 spring 中,您可以使用@transactional)。但如果不是,看起来代码有一个开始和一个提交,以防成功,请尝试使用 finally 在 persist 方法中添加一个 tr.rollback() (或者您甚至可以使用 tr 检查事务是否仍然处于 Activity 状态.isActive() 方法。

关于java - Hibernate JPA 约束冲突和事务已激活,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23875206/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com