[英]How to use one to one/zero mapping in hibernate
假設我有兩個表: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的映射。
請將此注釋添加到車輛類別人員屬性中
@NotFound(action=NotFoundAction.IGNORE)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.