Вопрос

В настоящее время я пытаюсь осуществить многотоманские отношения с данными в счете. я следую этот подход с рамками ECLIPSELINK JPA. Но я получаю следующее исключение:

org.eclipse.persistence.exceptions.entitymanagersetupException.predeDoyfailed (entitymanagersetupexception.java:210) ... 23 больше вызвано: исключением [EclipseLink-7298] (Eclipse Superistence Services - 2.1.1.V20100817-R8050): ORG.ECLIPSE. Sististentence.exceptions.validationException Исключение Исключения Описание: сопоставление [Группа] из встроенного ID класса [Class de.kapieren.mbm.server.model.usergroupkpk] - неверное отображение для этого класса. Встроенный класс, который используется с встроенным спецификацией ID (атрибут [PK] из источника [Class de.kapieren.mbm.server.model.groupmembership]) может содержать только основные сопоставления. Либо удалите не базовое отображение или изменить встроенный спецификацию ID на источнике, который будет встроен

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

Это было полезно?

Решение

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

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

11.1.15 Embeddedid Annotation

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

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

использованная литература

  • Спецификация JPA 2.0
    • Раздел 11.1.15 "Embeddedid Annotation"
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top