0

休止状態のドキュメントを調べていたところ、次のようになりました

UNI =単方向 およびBi = 双方向

                     OneToOne      OneToMany         ManyToOne       ManyToMany 
Uni                  ok                UNUSUAL       MOST COMMON      
Uni with Join Tbl    UNUSUAL                        Common whn optional
Bi                   COMMON        <------ Most Common ------------>  
Bi with Join Tbl   Possible bt Unusual 

したがって、Person と Phone Table があり、同じ電話 (所有者) ではなく、そのすべての電話を人だけに知ってもらいたい場合、なぜそれが珍しいのでしょうか?

または、そのカテゴリで一部のマッピングが非常に好まれる理由( Uni 、 Uni with Join table 、 Bi 、 Bi with Join table など)

4

1 に答える 1

0

ここで重要なのは、マッピングがスキーマと可能な限り同期していることを確認することです。

一方向の OneToMany マッピングとして Person と PhoneNumber の関連付けの例を示します。PhoneNumber テーブルには必然的に Person テーブルへの外部キーがあるため、これはお勧めできません。したがって、PhoneNumber はその所有者をよく認識しています。ただし、単方向マッピングを使用すると、PhoneNumber がどの Person を所有しているかを知らないふりをすることになります。Hibernate アノテーションのドキュメントに記載されているように、これを行うことを止めるものは何もありません。

このアプローチの欠点は、PhoneNumber と Person Hibernate を追加するときに、両方のレコードを挿入してから、PhoneNumber を更新して外部キーを設定する必要があることです。3 つのステートメント。ただし、双方向リンクを使用する場合、Hibernate は外部キーが設定済みの PhoneNumber を挿入できます。2 つのステートメントのみが必要です。

于 2012-10-17T12:58:56.203 に答える