エンティティ クラス Person と Book が必要であり、どちらもフィールド名 date (タイプ java.util.Date の pe) を持ち、Person の生年月日と Books の発行日を表し、もちろんどちらも一意ではありません。Entity クラスの Person で、関係 (ManyToMany) to Books を作成します。これは、その人の誕生日に発行されたすべての本を返します。これは可能ですか?もしそうなら、ManyToMany 関係 (および JointTable) をどのように定義する必要がありますか? フィールドは両方のエンティティで日付と呼ばれ、一意ではないことに注意してください。
私は試した
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(
name = "test",
joinColumns = @JoinColumn(name = "date", unique=false),
inverseJoinColumns = @JoinColumn(name = "date", unique=false)
)
ただし、開始時に例外が発生します ( org.hibernate.MappingException: コレクションのマッピングで列が繰り返されます)
そして私は試しました
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(
name = "test",
joinColumns = @JoinColumn(name = "date_person", unique=false),
inverseJoinColumns = @JoinColumn(name = "date_book", unique=false)
)
ただし、空のテーブルが作成されます。私は何かが欠けているに違いない。