条件:
我々はプロジェクトを開発するとき、私たちはしばしば私たちはしばしば、我々がマッピングされたいくつかのエンティティクラスが必要に見つけ、その後、そのような数のIDなどの共通の属性があるでしょう、データベーステーブルを操作するエンティティを使用して、作成者、作成時間は、それらの、修正時刻、ノートなどを変更します。このような場合には、我々は、親クラスを継承するために、親として抽象化これらの属性を考え、その後、別のエンティティクラスにあります。
そこで、我々は@MappedSuperclassのコメントを使用することができます
このコメントを通じて、我々は、基本クラスのエンティティとしてエンティティクラスは、それがデータベーステーブルにマップされていないことができ、
サブクラスは、自動的にマッピングエンティティを継承マッピング・エンティティがデータベーステーブルサブクラスエンティティに追加されたときに、基本クラスの属性をスキャンします。
1 / * 2 *の一般化:継承 3 *これはJPAクラスは、すべての親クラスを継承伝え 4。 * * / 5。 @MappedSuperclass 6。 パブリック クラスBaseDomain { 7。 @Id 8。 @GeneratedValue 9。 保護ロングID; 10 11。 公衆ロングgetId(){ 12は 戻り、ID 13である } 14 15 公共 ボイドSETID(ロングID){ 16 この .ID = ID; 17 } 18です }
サブクラス:
1 @Entity 2 @Table(名= "部署" ) 3 パブリック クラスカテゴリーは延びBaseDomain { 4 プライベート文字列名を、 5 9 公共の文字列のgetName(){ 10 リターン名。 11 } 12 13 公共の ボイドのsetName(文字列名){ 14 この .nameの= 名前。 15 } 24 }
環境の使用:
1. MappedSuperclassノート@上記の親クラスでは、親クラスの役割を識別するために使用され
、それは完全なエンティティクラスではありませんので、それは、データベーステーブルにマッピングすることができないと述べた識別2.クラスの@ MappedSuperclassを、それが持っています属性は、データベーステーブルのサブクラスにマップすることができ
MappedSuperclass識別されたクラス@ 3があまりにも@Table @Entityや注釈を持つことができないと@Id @Column注釈を使用することができます