2016-04-10 27 views
0

1つのJPA/Hibernateエンティティを多数のデータベーステーブルに格納する方法はありますか?1つのエンティティと複数のDBテーブル

たとえば、継承されたエンティティ(複数のエンティティのタイプ)を単一のデータベーステーブルに格納する方法がありますが、私の質問はこれと逆です。

+0

あなたがでこれを処理することができるかもしれませんトリガーを使用してデータベースレベル –

+1

おそらくJPAの「セカンダリテーブル」を調べますか? –

答えて

2

はい、1つのエンティティを複数のデータベーステーブルに格納できます。ただ、@SecondaryTable/@SecondaryTablesであなたのエンティティクラスに注釈を付けると、特定のテーブルから列にフィールドをマップするために、あなたのフィールドマッピング注釈の「テーブル」プロパティを使用します。

@Entity 
@Table(name ="TABLE1") 
@SecondaryTables({ 
    @SecondaryTable(name = "TABLE2", pkJoinColumns = @PrimaryKeyJoinColumn(name = "ID")), 
    @SecondaryTable(name = "TABLE3", pkJoinColumns = @PrimaryKeyJoinColumn(name = "ID")) 
}) 
public class MyEntity { 
    @Id 
    @Column(name = "ID") /* when no table property is given, the primary table is used which is TABLE1 */ 
    private Long id; 

    @Column(name = "FIELD1", table = "TABLE2") 
    private String field1; 

    @Column(name = "FIELD2", table = "TABLE3") 
    private String field2 
} 
関連する問題