你想要的是公司和地址之间的一对一映射
只需将@OneToOne注释添加到Company类的table_address字段:
public class Address {
@Id
@GeneratedValue
private Long id;
private String address;
@OneToOne
@PrimaryKeyJoinColumn
private Company company;
//getters and setters
}
public class Company {
@Id
@GeneratedValue
private Long id;
private String name;
@OneToOne(mappedBy = "company",cascade = CascadeType.ALL)
private Address companyAddress;
//getters and setters
}
除了问题:
尊重java命名约定,在你的情况下,类名应该以大写字母开头,也应该以变量名中的下一个字开头.即公司应为公司,地址应为地址,私人地址table_address;更改为私人地址companyAddress;
更新的方案
public class Address {
@Id
@GeneratedValue
private Long id;
private String address;
@OneToOne
@JoinColumn(name = "company_id")
private Company company;
//getters and setters
}
public class Company {
@Id
@GeneratedValue
private Long id;
private String name;
@OneToOne(mappedBy = "company",cascade = CascadeType.ALL)
private Address companyAddress;
//getters and setters
}
来自stupidfrog:如果你使用@PrimaryKeyJoinColumn,那么id加入错误. id连接主要但不是地址表company_id