Iam对于我的案例中的JPA关系定义有点困惑,可以使用一些帮助使其正确。即使看起来很容易,我总是会遇到不同的错误。定义JPA简单关系
实施例一:
@Entity
public class Person
{
...
@ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE}) // cascade what?
private List<Attribute> attribs;
}
@Entity
public class Attribute
{
@Id
private Integer id;
...
}
所有的人可以有相同的属性等。
问题是Person应该能够级联Persist/merge属性而不生成重复项。正如我所说,它似乎很容易,我只是因为遇到不同的异常而遇到困难。并正确的方向来“修复”正确的配置:)
感谢您的任何帮助。
编辑:
OK,它似乎是它是一个多对多的关系。即使一个人只能有一个属性?但是一个不同的人也可以拥有。 但现在我有这个级联持久/合并问题。
如:
Person a = new Person();
a.add(new Attribute(1));
a.add(new Attribute(2));
repo.save(a); //worked and persists Attributes
Person b = new Person();
a.add(new Attribute(1));
a.add(new Attribute(2));
a.add(new Attribute(3));
repo.save(b); //Error: IllegalStateException: Multiple representations of the same entity ..Attribute.. are being merged. Detached ..Attribute..
同样的情况,如果只是想要一个新的属性添加到人一个。我必须将现有属性的整个列表另外发送给新的属性。
您必须使用@ManyToMany – wolverine