Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JPA中扩展可嵌入类_Jpa_Eclipselink_Embeddable - Fatal编程技术网

在JPA中扩展可嵌入类

在JPA中扩展可嵌入类,jpa,eclipselink,embeddable,Jpa,Eclipselink,Embeddable,我有一个可嵌入类ABC,它是从另一个可嵌入类XYZ扩展而来的。ABC的对象嵌入到实体中。与实体对应的表仅包含ABC元素,而不包含XYZ元素。我该怎么做才能得到它们呢 我听说描述符定制器可以工作。我该怎么做?还有其他方法吗?您需要在描述符RCustomizer中为XYZ设置InheritancePolicy ClassIndicator字段。然后您需要为扩展XYZ的ABC定义聚合描述符,您可能需要一个SessionCustomizer。可能会对您有所帮助。据此,InheritanceType.SI

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


我听说描述符定制器可以工作。我该怎么做?还有其他方法吗?

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

可能会对您有所帮助。据此,InheritanceType.SINGLE_表是默认策略。根据您的要求,每个类可能需要InheritanceType.TABLE\u


它已经在
实体继承映射策略
主题中进行了描述,但我相信它也适用于“可嵌入的”。

有人能举例说明如何编写此描述符映射器吗? 我有同样的东西,我的XYZ类有一堆字符串和UID。 我无法让嵌入ABC的对象显示XYZ中的字段。
(我能做到的唯一方法是将所有XYZ字段的getter放在ABC中,这不好)

Err,将所需的列添加到表中。如果ABC扩展XYZ,则它是一个XYZ,因此表中需要XYZ的所有字段。如果它们不是必需的,那么不应该让ABC扩展XYZ。ABC不是唯一扩展XYZ的类。什么?我的观点仍然是。如果其他扩展类也有同样的问题,那么它们也不应该扩展XYZ。JPA没有提到对继承的嵌入式对象的支持;需要一个鉴别器来提供这种特征。最近添加到JDO规范中。