Расширение класса Embeddable в JPA - PullRequest
4 голосов
/ 09 января 2012

У меня есть встраиваемый класс ABC, расширенный от другого встраиваемого класса XYZ. Объект ABC встроен в сущность. Таблица, соответствующая сущности, содержит только элементы ABC, а не XYZ. Что я должен сделать, чтобы получить их также?

Я слышал, что Descriptor Customizer будет работать. Как мне это сделать? Есть ли другой способ?

Ответы [ 3 ]

1 голос
/ 16 июля 2013

Этот документ oracle javaEE может вам помочь.В соответствии с этим InheritanceType.SINGLE_TABLE является стратегией по умолчанию.Вам может понадобиться InheritanceType.TABLE_PER_CLASS для вашего требования.

Это описано в теме Entity Inheritance Mapping Strategies, но я считаю, что это также может работать для 'Embeddable'.

0 голосов
/ 03 февраля 2015

Может кто-нибудь привести пример того, как написать этот DescriptorCustomizer?У меня то же самое, что мой класс XYZ имеет кучу строк и идентификаторов.Я не могу получить объект, который имеет встроенную ABC, чтобы показать поля из XYZ.(Единственный способ, которым я смог это сделать, это поместить геттеры в ABC для всех полей XYZ, и это бесполезно)

0 голосов
/ 09 января 2012

Вам нужно установить InheritancePolicy classIndicatorField в вашем дескрипторе Customizer для XYZ. Затем вам нужно определить составной дескриптор для ABC, который расширяет XYZ, для этого вам может понадобиться SessionCustomizer.

...