2010-12-11 2 views
1

저는 추가 Java 라이브러리 인 "plugin"을 사용하여 확장 할 수있는 기본 기능을 갖춘 모듈 식 Webproject를 만들고 있습니다.같은 데이터베이스 테이블에 2 개의 Hibernate 엔티티. 이것이 가능한가?

"핵심"프로젝트는 User 테이블에 매핑되는 User 엔터티를 알고 있습니다. 플러그인 프로젝트는이 사용자를 동일한 테이블에 매핑 된 ExtendedUser로 확장합니다.

두 엔티티가 공존해야합니다. 여기서 User는 일부 열만 알고 있습니다.

두 엔티티는 동일한 클래스에 포함 된 다른 라이브러리에서 선언됩니다.

최대 절전 모드에서 어떻게 작동합니까?

감사합니다.

+0

나는 이걸로 어떤 진전이 있었는지 궁금했는데 .. – octav

+0

그 [그래서 질문] (http://stackoverflow.com/questions/1667930/2-jpa-entities-on-the-same-table) 것 같습니다 같은 것의 다소간의 이야기 ... –

답변

3

User으로 확장되는 클래스라고 가정하면 Hibernate의 "table-per-class-hierarchy"상속 전략을 사용할 수 있습니다. docs here을 참조하십시오. 특수 효과를 사용하면 InheritanceType.SINGLE_TABLE을 사용합니다 (문서 2.2.4.2 here 참조).

+0

그러나 사용자는 여전히 자신의 자격으로 공존해야하며 다른 엔티티에 의해 참조되어야합니다. @Inheritance (strategy = InheritanceType.SINGLE_TABLE)라고 표시된 테이블은 @Entity로 표시되지 않으므로 자체의 ID로 인식되지 않습니다. – Toby

1

상속 스키마가없는 두 개의 Java 엔터티에 테이블을 한 번 매핑하려고했습니다. 나는 오래된 엔티티를 보존하면서 몇 가지 다른 매핑을 실험하고 싶었다.

User와 ExtenderUser가 둘 다 동일한 엔티티 집합을 공유하면 X, Hibernate는 어떤 엔티티 X가 다시 연결되어 있는지 알지 못한다고 불평 할 것입니다 : User 또는 ExtenderUser.

결론적으로 내 경우에는 제대로 작동하지 않았으므로 제대로 작동하지 않습니다.

나는 상속 계획을 시도하지 않았지만, 당신이 말하는 것에서도 당신은 하나도 아닙니다.

관련 문제