0
我使用JPA/EclipseLink的三个实体:的EclipseLink在子类中查询使用不正确的表名,如果继承类型是单表
@Entity(name = "Sharing")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public class AbstractSharingEntity extends AbstractEntity {
@Entity(name = "InternalSharing")
public class InternalSharingEntity extends AbstractSharingEntity {
@Entity(name = "ExternalSharing")
public class ExternalSharingEntity extends AbstractSharingEntity {
如果我创建AbstractSharingEntity(” FROM共享一个类型的查询...... 。“),EclipseLink使用指定的实体名称创建正确的查询。但如果我为两个子类之一(例如“... FROM InternalSharing ...”)创建了一个类型化查询,EclipseLink将使用类名作为表名而不是使用实体名来创建错误的查询。这会导致以下错误:
java.sql.SQLSyntaxErrorException: Table 'db.ABSTRACTSHARINGENTITY' doesn't exist
我犯了什么错误,这是预期的行为吗?如何在不更改类名称/删除不同实体名称的情况下为子类创建有效查询?
打开,看到的EclipseLink说什么,当处理您的持久性单元。 – Chris