如何使用Hibernate连接两个表的字段?

我有两个表和相关的Java映射。

CREATE TABLE country ( code VARCHAR(3) PRIMARY KEY NOT NULL, name VARCHAR(100) NOT NULL ); CREATE TABLE user ( id INT PRIMARY KEY NOT NULL AUTO_INCREMENT, name VARCHAR(100) NOT NULL, country_code VARCHAR(3), FOREIGN KEY ( country_code ) REFERENCES country ( code ) ); 

这是我的Java实体。 国家POJO:

 @Entity @Table(name = "country") public class Country { @Id @Column (name = "code") private String code; @Column (name = "name") private String name; 

和用户POJO:

 @Entity @Table(name = "user") public class User implements Serializable { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Integer id; @Column(name = "name") private String name; @Column(name = "country_code") private String countryCode; 

问题是如何使用注释将User.countryCode中的User.countryCode加入Contry.code ? 当我使用Hibernate创建User对象时,我需要自动绑定这两个字段(code和countryCode)。

您需要从CountryUser实体的@ManyToOne映射以及从UserCountry相应@ManyToOne映射:

 @Entity @Table(name = "country") public class Country { @Id @Column (name = "code") private String code; @Column (name = "name") private String name; @OneToMany(mappedBy = "country") private Set users; } @Entity @Table(name = "user") public class User implements Serializable { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Integer id; @Column(name = "name") private String name; @ManyToOne @JoinColumn(name = "country_code") private Country country; }