私は以下をマッピングしようとしています:
public class Person{
...
@ManyToMany(cascade = { CascadeType.PERSIST, CascadeType.MERGE })
@JoinTable(name = "person_categories", joinColumns = @JoinColumn(name = "personId"), inverseJoinColumns = @JoinColumn(name = "categoryId"))
private Set<Category> categories
...
}
public class Category {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "categoryId")
private Integer id;
@Column(unique = true)
private Sting name
...
}
Personオブジェクトを保存しようとすると、カテゴリが挿入されますが、重複がテーブルに保存されます。推移的な永続性を維持しながら、各カテゴリがそのテーブル内で一意であることを確認するにはどうすればよいですか?名前の列を一意にしようとしましたが、それは制約エラーをスローすることによってのみ役立ちました。