Java 实体管理器提交中的更多信息
我在jpa中使用eclipselink,当我提交时,有时我会因为缺少信息而出错, 有一种获取附加信息错误的方法可以帮助我快速找到错误的原因Java 实体管理器提交中的更多信息,java,jpa,eclipselink,Java,Jpa,Eclipselink,我在jpa中使用eclipselink,当我提交时,有时我会因为缺少信息而出错, 有一种获取附加信息错误的方法可以帮助我快速找到错误的原因 entityManager.getTransaction().commit(); 这是提交本身失败的典型情况。 最典型的情况是,当数据库中存在约束时,JPA层不知道什么。 例如,在数据库表列上,您可能有一个JPA中未定义的唯一约束,在这种情况下,提交将抛出一个错误。 因此,我的建议是检查数据库约束冲突的可能性。 此外,您应该捕获事务周围的javax.tra
entityManager.getTransaction().commit();
这是提交本身失败的典型情况。 最典型的情况是,当数据库中存在约束时,JPA层不知道什么。 例如,在数据库表列上,您可能有一个JPA中未定义的唯一约束,在这种情况下,提交将抛出一个错误。 因此,我的建议是检查数据库约束冲突的可能性。 此外,您应该捕获事务周围的
javax.transaction.RollbackException
:
try {
entityManager.getTransaction().begin();
...
entityManager.getTransaction().commit();
} catch (RollbackException e1) {
System.out.println(e1.getMessage());
System.out.println(e1.getCause());
throw ...;
}
e1.getCause()
应该包含违反的约束。至少在使用文明数据库和JDBC驱动程序时:)。您遇到了什么错误?