2017-02-20 7 views
1

私はHibernateを初めて使用しており、マッピング戦略を学びたいと考えています。現在、私は単方向マッピングと双方向マッピングを実現できます。uni-directionalマッピングの場合は@JoinColumnが厳密に必要ですが、マッピングがbi-directionalの場合は必要ありません。Hibernate:単方向および双方向マッピングでの@JoinColumnの振る舞い

なぜ@JoinColumnまたは@JoinTableuni-directionalマッピングの場合には必要ですが、bi-directionalマッピングの場合は、オプションのですか?

答えて

0

双方向マッピングの場合はオプションではありません。 これは所有側でのみ指定されているため、所有側で指定することはオプションで冗長です。結合列の名前が変更されたときに2つのクラスを変更する必要があるので、これはお勧めできません。

私はいくつかのテストを行い、Hiberanteはそれを許可します。

単方向マッピングは唯一の所有側が設定した、あなたは暗に、その後、関係の反対側からそれらのエンティティに参加されることを期待していないとして:

@JoinColumn(片方向のための適切な@ManyToOne)

又は

@JoinTable一方向@OneToManyための(適切な)

が使用されなければなりません。

examples

関連する問題