Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 实体管理器提交中的更多信息_Java_Jpa_Eclipselink - Fatal编程技术网

Java 实体管理器提交中的更多信息

Java 实体管理器提交中的更多信息,java,jpa,eclipselink,Java,Jpa,Eclipselink,我在jpa中使用eclipselink,当我提交时,有时我会因为缺少信息而出错, 有一种获取附加信息错误的方法可以帮助我快速找到错误的原因 entityManager.getTransaction().commit(); 这是提交本身失败的典型情况。 最典型的情况是,当数据库中存在约束时,JPA层不知道什么。 例如,在数据库表列上,您可能有一个JPA中未定义的唯一约束,在这种情况下,提交将抛出一个错误。 因此,我的建议是检查数据库约束冲突的可能性。 此外,您应该捕获事务周围的javax.tra

我在jpa中使用eclipselink,当我提交时,有时我会因为缺少信息而出错, 有一种获取附加信息错误的方法可以帮助我快速找到错误的原因

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驱动程序时:)。

您遇到了什么错误?