我是JPA的新手,在理解双向关系方面存在一些问题。
我有实体Job和Execution。 1个作业属于1个执行,反之亦然。所以,我想使用onetoone关系。
我的代码如下:
@Entity
public class Execution {
....
@OneToOne(cascade=CascadeType.ALL,optional=false)
private Job job;
....
}
@Entity
public class Job{
......
@OneToOne(mappedBy="job",optional=false)
private Execution execution;
.....
}
我为这两个字段设置了optional = false。正如预期的那样,如果我尝试持久化具有Null Job对象的Execution对象,则hibernate会抛出异常 但是可以使用Null Execution对象持久化Job对象,尽管我设置了optional = false。
我做错了什么?
答案 0 :(得分:1)
尝试添加以下注释。
@Column(nullable = false)