Может ли JPA обрабатывать ссылки на интерфейсы? - PullRequest
0 голосов
/ 17 июля 2011

У меня есть следующие 3 объекта:

  • класс объектов A реализует интерфейс X
  • класс объектов B реализует интерфейс X
  • класс объектов C

Где бы я хотел, чтобы класс сущности C мог содержать ссылку на сущность типа X, то есть: либо A, либо B.

Возможно ли сделать это, не имея двух ссылокполя в C, например:

@ ManyToOne частный родительский C;

Или мне нужно иметь одну ссылку для каждой реализации C и выполнять присвоение самостоятельно?

Ответы [ 2 ]

3 голосов
/ 17 июля 2011

Неа.JPA не определяет постоянство для полей / свойств типов интерфейса.JDO - единственная спецификация персистентности, которая позволяет это.

Единственное, что вы можете сделать, - это иметь общий базовый класс, но это может быть невозможно в вашей модели.

1 голос
/ 18 июля 2011

Не определено в спецификации JPA, но при использовании EclipseLink для этого можно использовать отображение @VariableOneToOne.

См, http://en.wikibooks.org/wiki/Java_Persistence/Advanced_Topics#Interfaces

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