在JPA中扩展Embeddable类

时间:2012-01-09 08:24:57

标签: jpa eclipselink embeddable

我从另一个可嵌入类XYZ扩展了一个可嵌入的类ABC。 ABC的对象嵌入在一个实体中。与实体对应的表仅包含ABC的元素而不包含XYZ的元素。我该怎么做才能得到它们?

我听说Descriptor Customizer可以使用。我该怎么办?还有其他办法吗?

3 个答案:

答案 0 :(得分:1)

This document of oracle javaEE可能会对您有所帮助。根据这个,InheritanceType.SINGLE_TABLE是默认策略。根据您的要求,您可能需要InheritanceType.TABLE_PER_CLASS。

它已在Entity Inheritance Mapping Strategies主题中对其进行了描述,但我相信它也适用于'嵌入'。

答案 1 :(得分:0)

您需要在DescriptorCustomizer中为XYZ设置InheritancePolicy classIndicatorField。然后你需要为扩展XYZ的ABC定义聚合描述符,你可能需要一个SessionCustomizer。

答案 2 :(得分:0)

有人可以举例说明如何编写这个DescriptorCustomizer吗? 我有同样的事情,我的XYZ类有一堆字符串和uid。 我无法获得具有嵌入式ABC的对象来显示XYZ中的字段。 (我能够做到的唯一方法就是将所有XYZ场中的getter放入ABC中并且没有好处)