0

ユーザーエンティティがある場合は、2つの方法でそのユーザーのアドレスを保存できます。すべてのフィールドをユーザーオブジェクトに直接格納することも、別のテーブルに永続化してユーザーに結合(またはカスケードなど)してユーザーエンティティ内のアドレスオブジェクトに配置するアドレスオブジェクトを作成することもできます。 。

後者を行うことの利点は何ですか?より多くのものを1つのテーブルに収めることができるのであれば、それは最も理にかなっていますか?後者は、より多くのリソース使用量を被ることになると思います。他のことにはもっと実用的だと思いますが、この例では、どちらかを実行できる状況について具体的に説明しています。

上記で説明したのと同様のことをした場合、ユーザーは一般的にIdClassを使用するものですか?

IdClassの場合、すべてのフィールドが単に別のエンティティへのキーである必要がありますか、それともそこに具体的なフィールドまたは一時的なフィールドを追加できますか?@IdClassの使用法は、単に複数のIdアノテーションを期待することを意味しているのでしょうか?残りはあなた次第ですか?

ありがとう!

4

1 に答える 1

1

関係に対処するユーザーは、多対1である必要があります。1人のユーザーが2つのアドレスを持っている可能性があるためです。アドレスオブジェクトをユーザーオブジェクト内に配置する場合、ユーザーのアドレスは1つだけにすることができます。ユーザーオブジェクトにアドレスフィールドがあると、その問題も発生します。したがって、両方の提案はベストプラクティスではありません。

IdClass for Userエンティティを使用する必要はなく、アノテーションによるデータベースネイティブID生成を使用できます。`@Id @GeneratedValue(strategy = GenerationType.IDENTITY)。

于 2012-06-27T04:26:34.453 に答える