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