0

私には2つのエンティティクラスがあります-AB。コードのテンプレートは次のとおりです。

class A extends class B  {
    // ...
}

@Entity
@Table("OPERATION")
@DiscriminatorValue()
@Access()
class B  {
    // ...
}

クラスBには、.sqlファイルにスキーマ定義があります。クラスAにはスキーマ定義がありません。

私の質問は、Aリレーショナルデータベースにマップするために、クラスが.sqlファイルにもスキーマ定義を持っている必要はないということです。私はこれについて混乱していて、マッピングがどのように行われているのか理解できません。

より具体的な例を使用するために、次の2つのクラスがOperationありOperationAmend、それらのコードは次のとおりです。

 @Entity
 @DiscriminatorValue()
 @Access()
 class OperationAmend extends Operation {   
     //some functions here for amending an operation
 }

 @Entity
 @Table("OPERATION")
 @DiscriminatorValue()
 @Access()
 class Operation  {   
     //some functions here for the operation.
 }

SQLスキーマ:

 CREATE TABLE OPERATION {    
     OperationId INT;    
     Name VARCHAR(20); 
 }

OperationAmendスキーマがない場合でも、クラスをどのように保存できますか?

4

1 に答える 1

0

JPAでは、エンティティが認識されるためには、persistence.xmlで宣言する(またはプロバイダーによってスキャンされる)必要があります。プロバイダーはそのスキーマを生成します。現在、実装テーブルはDBに存在しない可能性がありますが、修正するのは簡単です。

于 2013-01-21T01:36:31.733 に答える