我有一个从另一个可嵌入类 XYZ 扩展的可嵌入类 ABC。ABC 的对象嵌入在一个实体中。与实体对应的表仅包含 ABC 的元素,而不包含 XYZ 的元素。我应该怎么做才能得到它们?
我听说描述符定制器会起作用。我该怎么做?还有其他方法吗?
我有一个从另一个可嵌入类 XYZ 扩展的可嵌入类 ABC。ABC 的对象嵌入在一个实体中。与实体对应的表仅包含 ABC 的元素,而不包含 XYZ 的元素。我应该怎么做才能得到它们?
我听说描述符定制器会起作用。我该怎么做?还有其他方法吗?
oracle javaEE 的这个文档可能会对您有所帮助。据此, InheritanceType.SINGLE_TABLE 是默认策略。您可能需要 InheritanceType.TABLE_PER_CLASS 来满足您的要求。
它已在Entity Inheritance Mapping Strategies
主题中进行了描述,但我相信它也可能适用于“可嵌入”。
您需要在 DescriptorCustomizer 中为 XYZ 设置 InheritancePolicy classIndicatorField。然后您需要为扩展 XYZ 的 ABC 定义聚合描述符,您可能需要一个 SessionCustomizer。
有人可以举例说明如何编写这个 DescriptorCustomizer 吗?我有同样的事情,我的 XYZ 类有一堆字符串和 uid。我无法让具有嵌入式 ABC 的对象显示来自 XYZ 的字段。(我能做到的唯一方法是将所有 XYZ 字段的吸气剂放在 ABC 中,这不好)