尝试保留具有映射到表主题的多对多字段的对象 Word() 时,我收到“在同步期间,通过未标记级联 PERSIST 的关系找到了新对象”。关系桥表是Topic_links。使问题变得复杂的是,我总是使用 Eclipse Workbench 来设置我的实体,这使得很难找到解决方案,因为大多数人使用注释来建议答案,而工作台不使用注释。我尚未在工作台中找到将关系的 CASCADE 选项设置为 PERSIST 的方法。我已将以下条目添加到 persistence.xml:
<property name="eclipselink.persistence-context.persist-on-commit" value="true"/>
异常仍在抛出。
最佳答案
我不太确定语法,因为 Eclipse Workbench 似乎使用 native EclipseLink ORM XML 文件,但使用标准 JPA XML 映射,您可以通过添加 <cascade>
来设置级联<many-to-many>
内的元素,像这样:
<many-to-many name="projects" target-entity="Project">
<join-table name="PROJ_EMP">
<join-column name="EMP_ID" />
<inverse-join-column name="PROJ_ID" />
</join-table>
<cascade>
<cascade-persist/>
</cascade>
</many-to-many>
但是你真的应该改变你的习惯,Eclipse Workbench对于JPA开发来说并不理想。在此引用 James Sutherland Workbench to use annotations线程:
The EclipseLink Workbench is the UI for the native (old) EclipseLink ORM XML file, OXM and EIS, is it not meant for JPA development. Eclipse Dali, Oracle JDeveloper or other such JPA tools should be used for this.
关于java - EclipseLink级联持续异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3484085/