Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.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 使用IndexColumn从多个主机中删除 报告实体{ @许多 @JoinTable(name=“报告内容与关系”, joinColumns=@JoinColumn(name=“report\u id”), inverseJoinColumns=@JoinColumn(name=“content\u id”)) @IndexColumn(name=“content\u order”) 私有列表内容=新的ArrayList(); } 某类{ 公共void remoteContentFromReport(内容){ List contents=report.getContents(); 内容。删除(内容); 保存(报告); } }_Java_Hibernate - Fatal编程技术网

Java 使用IndexColumn从多个主机中删除 报告实体{ @许多 @JoinTable(name=“报告内容与关系”, joinColumns=@JoinColumn(name=“report\u id”), inverseJoinColumns=@JoinColumn(name=“content\u id”)) @IndexColumn(name=“content\u order”) 私有列表内容=新的ArrayList(); } 某类{ 公共void remoteContentFromReport(内容){ List contents=report.getContents(); 内容。删除(内容); 保存(报告); } }

Java 使用IndexColumn从多个主机中删除 报告实体{ @许多 @JoinTable(name=“报告内容与关系”, joinColumns=@JoinColumn(name=“report\u id”), inverseJoinColumns=@JoinColumn(name=“content\u id”)) @IndexColumn(name=“content\u order”) 私有列表内容=新的ArrayList(); } 某类{ 公共void remoteContentFromReport(内容){ List contents=report.getContents(); 内容。删除(内容); 保存(报告); } },java,hibernate,Java,Hibernate,调用remoteContentFromReport方法时,我得到以下错误 java.sql.BatchUpdateException: 从中删除重复条目 收藏 我不想删除Content.entity,只想删除联接表中与报表关联的条目 我缺少什么?您应该能够调用report.saveOrUpdate(),它将自动取消链接report.contents列表中不存在的所有内容(如果所有内容都正确映射) 因此,获取您的报告,从内容列表中删除不需要的内容条目,然后保存它。我将spring的实体管理器与jp

调用remoteContentFromReport方法时,我得到以下错误

java.sql.BatchUpdateException: 从中删除重复条目 收藏

我不想删除Content.entity,只想删除联接表中与报表关联的条目


我缺少什么?

您应该能够调用
report.saveOrUpdate()
,它将自动取消链接
report.contents
列表中不存在的所有内容(如果所有内容都正确映射)


因此,获取您的报告,从内容列表中删除不需要的内容条目,然后保存它。

我将spring的实体管理器与jpa一起使用,因此我只有merge或persist。但是在从collect中删除我的项之后,对报表实体调用merge会抛出重复条目错误。我已经使用最简单的环境编写了一个非常简单的测试应用程序,它的工作方式与我预期的一样。因此,我认为这不是JPA/Hibernate或映射的问题,更可能是在我编写的控制器和spring之间的抽象层中;可能与交易有关。 Report.entity { @ManyToMany @JoinTable(name = "reports_contents_relations", joinColumns = @JoinColumn(name = "report_id"), inverseJoinColumns = @JoinColumn(name = "content_id")) @IndexColumn(name="content_order") private List contents = new ArrayList(); } Someclass { public void remoteContentFromReport(Content content) { List contents = report.getContents(); contents.remove(content); save(report); } }