我正在尝试在我的项目中实现 ElcipseLink JPA2.0 以进行继承。不能使用注释。只有 xml 映射。
这是我的代码。公共类 DefaultEntity {
}
public class SpecialEntity extends DefaultEntity {
public String name;
public int age;
}
public class AnotherSplEntity extends DefaultEntity {
long ts;
String pkey;
}
public class MyPersistableEntity {
public DefaultEntity de;
public void setMyPersistableEntity(DefaultEntity de) {
// any subclass can be assigned here.
this.de = de
}
这是我的 ORM.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<entity-mappings xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/orm" version="2.3">
<persistence-unit-metadata>
<exclude-default-mappings />
</persistence-unit-metadata>
<entity class="MyPersistableEntity">
<attributes>
<one-to-one name="de">
<cascade>
<cascade-all />
</cascade>
</one-to-one>
</attributes>
</entity>
<mapped-superclass class="DefaultEntity">
<attributes>
<id name="id" attribute-type="long">
<generated-value strategy="SEQUENCE" />
</id>
</attributes>
</mapped-superclass>
<entity class="SpecialEntity" >
<attributes>
<id name="id" attribute-type="long">
<generated-value strategy="SEQUENCE" />
</id>
<basic name="name" attribute-type="String" />
<basic name="age" attribute-type="int" />
</attributes>
</entity>
</entity-mappings>
我不断收到“在关系属性 [field de] 中使用非实体 [class DefaultEntity] 作为目标实体”
如何让 EclipseLink 识别分配的实际类并使用该映射?
有任何想法吗?最重要的是,可以使用 EcliseLink 完成吗?
谢谢戈皮