我有兩個表,第一個表包含company_id,company_name和國家名稱,第二個表包含與一對一映射公司相關的細節。休眠一對一映射與子類複合列
我想用Hibernate來執行以下操作映射: -
company {
company_id int,
company_name varchar,
country varchar
}
company_detail {
id int,
company_id int,
company_description text,
future_goal text
}
公司COMPANY_ID表應當與company_detail表,所以我已按照POJO
In Company POJO :-
@OneToOne(cascade=CascadeType.ALL)
@JoinColumn(name="COMPANY_ID")
private CompanyDetails companyDetails;
In CompanyDetails POJO :-
@Column(name="COMPANY_ID", nullable=false)
public Company company;
也映射COMPANY_ID地圖, setter中添加以下代碼: -
public void setCompanyDetails(CompanyDetails companyDetails) {
companyDetails.setCompany(this);
this.companyDetails = companyDetails;
}
此代碼工作fin e,保存公司時只有一個問題,null存儲在company_detal的company_id中,而不是公司表中創建的公司id。所有其他細節正確存儲。 那麼如何在POJO中爲上面的表結構設置一對一的映射呢?
我也想在公司詳細信息表自動生成的行ID。 在這種情況下需要做什麼改變? –
您的意思是你要爲CompanyDetail生成單獨的主鍵 – Sagar
是的,薩加爾。我想爲CompanyDetail提供一個單獨的主鍵 –