假设我有两个表:Person和Vehicle
人员记录可以独立存在,也就是说,人员可以与车辆关联或不关联。但是没有人就不可能存在车辆记录。 简而言之,
车辆表的Person_Id具有外键,其中Person_Id是人员表的主键。
现在要在休眠状态下定义这种关系,我已经使用了如下的一对一映射:
public class Person
{
private int person_id;
@OnetoOne(mappedBy = "person", cascade = CascadeType.ALL)
private Vehicle vehicle;
}
public class Vehicle {
private int vehicle_id;
@OnetoOne(fetch = FetchType.LAZY)
@JoinColumn(name = "person_id")
private Person person;
}
现在,当我尝试保存拥有Vehicle的Person时,person对象将成功保存。我只使用session.save(person)
,两个对象都成功保存。
另一方面,如果我尝试保存没有Vehicle的Person,即vechile对象对该Person对象为null。然后抛出异常,即
ConstraintVoilationException无法将null插入 Vehicle.Person_Id列。
请帮助我理解,当我的车辆对象为空时如何保存人对象。
这似乎是1到1/0的映射。
答案 0 :(得分:0)
答案 1 :(得分:0)
请在车辆类别人员属性中添加此注释
@NotFound(action=NotFoundAction.IGNORE)