我从另一个可嵌入类XYZ扩展了一个可嵌入的类ABC。 ABC的对象嵌入在一个实体中。与实体对应的表仅包含ABC的元素而不包含XYZ的元素。我该怎么做才能得到它们?
我听说Descriptor Customizer可以使用。我该怎么办?还有其他办法吗?
答案 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中并且没有好处)