我正在尝试创建一个实体B,它具有一个Join列,另一个实体A与另一个实体的主键。当我创建一个实体B,其值不在实体A中时,我没有看到异常。这不应该由JPA自动处理吗?
实体的代码段:
@Entity
public class A{
@Id
@Column(name="ORIGIN_ID")
private long id;
...
@OneToMany(mappedBy="aBean",cascade = CascadeType.PERSIST)
private List<B> bList;
}
@Entity
public class B{
@Id
private long id;
...
@ManyToOne(cascade=CascadeType.MERGE)
@JoinColumn(name="ORIGIN_ID")
private A aBean;
}
答案 0 :(得分:0)
你指的是关系管理。我记得JPA规范中没有任何内容需要抛出异常(因为用户传递了不一致的关系信息)。所有JPA实现都将自己处理这种情况。有些人只会坚持关系所有者方面的内容。其他人将根据首先遇到的情况而坚持下去。其他人有可选的处理,可以打开以检测这些事情并将其标记给用户
最简单的建议是在使用双向关系时,确保双方都是一致的。