1

私は次の@MappedSuperClassと@Entityを持っています:

@MappedSuperclass 
public class SuperClass implements Serializable {....}

@Entity
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
@Table(name = "TABLE1")
public class Table1 extends SuperClass implements Serializable {...}

@Entity
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
@Table(name = "TABLE2")
public class Table2 extends SuperClass implements Serializable {...}

データベースでは、両方のテーブルに同じ列があるため、すべての属性がSuperClassにあります。

@Id
private String attr1;

@Id
private String attr2;

@Column(name="DATA")
private String data;

// getters and setters

しかし、@ entity(table1またはtable2)のいずれかを使用してクエリを実行しようとすると、OpenJPAエラーが発生します。

Error pre-processing class table1 with weblogic.deployment.PersistenceUnitInfoImpl$ClassPreProcessorImpl@205c54b'
<openjpa-1.1.0-r422266:657916 fatal user error> 
org.apache.openjpa.util.MetaDataException: Type "class SuperClass" with application identity and no superclass does not declare an id class.  
This type is not eligible for builtin identity, so it must declare an id class.

@Entityクラスに属性@Idが見つからない理由がわかりません。

誰かアイデアがあれば、遠慮なく私を助けてください:)

よろしく、

Cytemax

4

2 に答える 2