如何使用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)。
您需要从Country
到User
实体的@ManyToOne
映射以及从User
到Country
相应@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; }
- Hibernate 5 + HikariCP + MySQL
- 基础知识 – Hibernate / JDBC连接池问题疑难解答
- 使用JPA在PostgreSQL中保留UUID
- java.lang.NoClassDefFoundError:无法初始化类org.com.hibernate.HibernateUtil
- Hibernate / JPA + Derby – SELECT语句在GROUP BY,ORDER BY或选择列表中包含太多项
- 将Hibernate结果转换为对象列表
- hibernate列名称问题
- Hibernate:如何从多个类的查询中获取结果
- 从POJO获取带注释的hibernate tablename