3.2.7. セカンダリテーブルのマッピング


@SecondaryTable または @SecondaryTables クラスレベルアノテーションを使用して、複数のテーブルに対して単一のエンティティ Bean をマップできます。カラムが特定のテーブルに含まれることを表現するには、@Column または @JoinColumntable パラメータを使用します。
@Entity
@Table(name="MainCat")
@SecondaryTables({ @SecondaryTable(name="Cat1", pkJoinColumns={ @PrimaryKeyJoinColumn(name="cat_id", referencedColumnName="id") ), @SecondaryTable(name="Cat2", uniqueConstraints={@UniqueConstraint(columnNames={"storyPart2"})}) })
public class Cat implements Serializable {

    private Integer id;
    private String name;
    private String storyPart1;
    private String storyPart2;

    @Id @GeneratedValue
    public Integer getId() {
        return id;
    }

    public String getName() {
        return name;
    }
    
    @Column(table="Cat1")
    public String getStoryPart1() {
        return storyPart1;
    }

    @Column(table="Cat2")
    public String getStoryPart2() {
        return storyPart2;
    }
この例では、nameMainCat に含まれます。storyPart1Cat1storyPart2Cat2 に含まれます。Cat1cat_id を外部キーとして MainCat に結合されます (Cat2id を使用します) (つまり、MainCat id カラムが持つのと同じカラム名)。さらに、storyPart2 に対する一意の制約が設定されます。
追加の例については、JBoss EJB 3 チュートリアルまたは Hibernate Annotations ユニットテストスイートを確認してください。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.