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
Jpa 将数据持久化到数据库会导致非法状态异常_Jpa_Jpa 2.0 - Fatal编程技术网

Jpa 将数据持久化到数据库会导致非法状态异常

Jpa 将数据持久化到数据库会导致非法状态异常,jpa,jpa-2.0,Jpa,Jpa 2.0,我有一个JPA问题 假设我有一个实体,如下所示(只是一个假设) 基本上, --=--=--=--=-=- |测试表| --=--=--=--=-=- |字符串id………..只需在关系中使用cascade PERSIST 在EclipseLink中,您还可以使用persistence unit属性 "eclipselink.persistence-context.commit-without-persist-rules"="true" PERSIST将不存在的实体添加到表中(因此现在有一个(3,

我有一个JPA问题

假设我有一个实体,如下所示(只是一个假设)

基本上,
--=--=--=--=-=-
|测试表|
--=--=--=--=-=-

|字符串id………..只需在关系中使用cascade PERSIST

在EclipseLink中,您还可以使用persistence unit属性

"eclipselink.persistence-context.commit-without-persist-rules"="true"

PERSIST将不存在的实体添加到表中(因此现在有一个(3,17)和一个(17,null))。我不希望这种情况发生。不幸的是,我认为修改eclipseLink设置也是不可能的。所以,它是一个新对象,但您不想保留它?它是从哪里来的?您可以使用getReference()获取对使用Id的现有对象的引用,如果该对象实际上不存在,它将导致所需的约束错误。这本质上是一种错误情况。要么有人在(17,1)之前“跳过枪”并提供了(3,17),要么在他们的意思是(3,1)时“输入错误”(3,17)。你能发布你是如何坚持(3,17)的吗?因为要做到这一点,您需要首先获取id为17的TestTable实体,然后将其设置为id为3的新实体。
"eclipselink.persistence-context.commit-without-persist-rules"="true"