JPA 2.1 / Eclipselink - 我是否可以使用@ManyToOne与每个类使用表的抽象实体的关系?

时间:2015-02-09 05:24:58

标签: jpa eclipselink jpa-2.0

我有一个名为Booking的@Inheritance(策略= TABLE_PERCLASS)的抽象@Entity。

是否可以将@Entity Payment.java与抽象类具有@ManyToOne关系?

我不确定列映射是如何进行的,所以我尝试使用drop和create table进行部署,Eclipselink在部署时给出了NPE :-)

异常说明:PersistenceUnit [xotica-bms-pu]的预部署失败。 内部异常:java.lang.NullPointerException     at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.createPredeployFailedPersistenceException(EntityManagerSetupImpl.java:1954)     at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.predeploy(EntityManagerSetupImpl.java:1945)     在org.eclipse.persistence.jpa.PersistenceProvider.createContainerEntityManagerFactory(PersistenceProvider.java:322)

1 个答案:

答案 0 :(得分:0)

没有

每个类的表意味着每个具体实体映射到不同的表。这意味着抽象实体在数据库中没有对应的表。因此,与依赖实体相对应的表(具有manyToOne关系)无法定义外键,因为外键没有目标表。

如果你需要与抽象实体有ManyToOne关系,那么你只能使用JOINED或SINGLE_TABLE继承。