我有两个表,第一个表包含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提供一个单独的主键 –