JPA EclipseLink ManyToMany с данными - PullRequest
       24

JPA EclipseLink ManyToMany с данными

0 голосов
/ 25 октября 2010

В настоящее время я пытаюсь реализовать взаимосвязь ManyToMany с данными в JoinTable. Я придерживаюсь этого подхода с Eclipselink JPA Framework. Но я получаю следующее исключение:

org.eclipse.persistence.exceptions.EntityManagerSetupException.predeployFailed (EntityManagerSetupException.java:210) ... еще 23 Вызывается: Исключение [EclipseLink-7298] (Eclipse Persistence Services - 2.1.1.v20100817-r8050): org.eclipse.persistence.exceptions.ValidationException Описание исключения: отображение [группа] из встроенного идентификатора класса [class de.kapieren.mbm.server.model.UserGroupPK] является недопустимым отображением для этого класса. Встраиваемый класс, который используется со спецификацией встроенного идентификатора (атрибут [pk] из источника [class de.kapieren.mbm.server.model.GroupMembership]) может содержать только базовые отображения. Удалите неосновное сопоставление или измените спецификацию встроенного идентификатора источника, который будет встроен

Кто-нибудь знает, в чем смысл базовых отображений по отношению к встроенному идентификатору? Что здесь может быть не так?

1 Ответ

3 голосов
/ 25 октября 2010

EclipseLink жалуется на использование отображений, отличных от Basic (например, ManyToOne), в классе Embeddable, используемом в качестве первичного ключа (т. Е. С пометкой EmbeddedId).

И в соответствии со спецификацией JPA 2.0 это действительно не поддерживается:

11.1.15 Аннотация EmbeddedId

Аннотация EmbeddedId применяется к персистентномуполе или свойство класса сущности или сопоставленного суперкласса для обозначения составного первичного ключа, который является встраиваемым классом.Встраиваемый класс должен быть аннотирован как Embeddable. Отображения отношений, определенные во встроенном классе идентификаторов, не поддерживаются .

Если я перефразирую, класс EmbeddedId Embeddable должен определить каждый атрибут id для сущности, используяBasic отображения в стандартном JPA.

Ссылки

  • JPA 2.0 Спецификация
    • Раздел 11.1.15 «Аннотация EmbeddedId»
...