Ebean は、非常によく似た JPA アノテーションを使用して、オブジェクトをデータベースにマップします。関係を調べてきました@OneToOne @OneToMany @ManyToMany @ManyToOne
。
逆フィールドは非常に非効率的であることを知りました (@mappedBy
双方向の関係を決定するために使用する場合)。
この問題が発生したときに、ORM を使用せずに SQL を使用して独自のデータベース構造を作成する場合、通常は知っています。
記事 <-> タグ
これは多対多の関係です。記事には多くのタグを付けることができ、1 つのタグを多くの記事に付けることができます。
通常、SQL では、Article テーブルと Tag テーブルを作成します。次に、2 つの列を持つ別のテーブルを作成します。
Article_Tag テーブル:
PrimaryKey ID (int)
ArticleID (int) ForeignKey to Article Table
TagID (int) ForeignKey to Tag Table
記事表:
PrimaryKey ArticleID (int)
Article Title (varchar)
タグ テーブル:
PrimaryKey TagID (int)
Tag Title (varchar)
私の唯一の問題は、これを Ebean(JPA) 表記法でどのように翻訳/書き換えるべきですか?
まず、この Article_Tag テーブルのために Article_Tag という名前のモデルを作成する必要がありますか、それとも Ebean によって自動的に作成されますか?
次に、記事モデルとタグ モデルにどのように注釈を付けて、この関係を説明すればよいでしょうか? どれがどれ@mappedBy
ですか?
第三に、 を使用する@mappedBy
と、逆フィールドが生成されますか? 私はそれを使用しないようにする必要がありますか?