有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java EclipseLink级联持久化异常

在尝试持久化具有多对多字段映射到表主题的对象Word()时,我得到了“在同步过程中,通过未标记为cascade PERSIST的关系找到了一个新对象”。关系桥接表是主题链接。使问题复杂化的是,我总是使用Eclipse工作台来设置实体,这使得很难找到解决方案,因为大多数人都使用注释来建议答案,而工作台并不使用注释。我还没有在工作台中找到一种方法来为关系持久化设置级联选项。我已将以下条目添加到持久性中。xml:

<property name="eclipselink.persistence-context.persist-on-commit" value="true"/>

仍在抛出异常


共 (1) 个答案

  1. # 1 楼答案

    我不完全确定语法,因为Eclipse工作台似乎使用本机EclipseLink ORM XML文件,但对于标准JPA XML映射,您可以通过在<many-to-many>内添加<cascade>元素来设置级联,如下所示:

    <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开发。引用詹姆斯·萨瑟兰在这篇文章中的话:

    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.