我有两个表和相关的 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;
问题是如何在 Hibernate 中使用注解将 Contry.code
加入到 User.countryCode
中?当我使用 Hibernate 创建用户对象时,我需要自动绑定(bind)这两个字段(代码和国家/地区代码)。
最佳答案
您需要从 Country
到 User
实体的 @OneToMany
映射以及从 对应的
到@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<User> 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;
}
关于java - 如何使用 Hibernate 连接两个表的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22334630/