【发布时间】:2017-04-08 10:22:57
【问题描述】:
我有两个表,第一个表包含 company_id、company_name 和国家名称,第二个表包含一对一映射的公司相关详细信息。
我想使用休眠进行以下映射:-
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_id 应该与 company_detail 表的 company_id 映射,所以我在 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;
另外,在 setter 中添加以下代码:-
public void setCompanyDetails(CompanyDetails companyDetails) {
companyDetails.setCompany(this);
this.companyDetails = companyDetails;
}
此代码工作正常,保存公司时只有一个问题,null 存储在 company_detal 的 company_id 中,而不是在公司表中创建的公司 id。所有其他详细信息正确存储。 那么如何在POJO中为上述表结构设置一对一映射呢?
【问题讨论】:
标签: java hibernate spring-mvc jpa