EclipseLink Cascade Persist исключение - PullRequest
1 голос
/ 14 августа 2010

При попытке сохранить объект Word (), который имеет сопоставление поля «многие ко многим» с таблицами «Темы», появляется сообщение «Во время синхронизации был обнаружен новый объект с помощью отношения, которое не было помечено каскадным PERSIST» Таблица мостов отношений - Topic_links. Проблема усложняется тем, что я всегда использую Eclipse Workbench для настройки своих сущностей, что затрудняет поиск решений, поскольку большинство людей предлагают ответы с использованием аннотаций, которые не используются в Workbench. Я не нашел способа в рабочей среде установить параметр CASCADE для отношения к PERSIST. Я добавил следующую запись в файл persistence.xml:

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

Исключение все еще выбрасывается.

1 Ответ

1 голос
/ 15 августа 2010

Я не совсем уверен в синтаксисе, потому что кажется, что Eclipse Workbench использует собственный XML-файл EclipseLink ORM, но со стандартными отображениями 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. Цитируя Джеймса Сазерленда в этой рабочей среде, использовать аннотации Тема:

EclipseLink Workbench - это пользовательский интерфейс для родного (старого) EclipseLink ORM XML-файл, OXM и EIS, это не значит для развития JPA. Затмение Дали, Oracle JDeveloper или другие подобные JPA инструменты должны быть использованы для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...