我有两个表和相关的 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;
问题是我怎样才能加入Contry.code
to User.countryCode
在 Hibernate 中使用注释?当我使用 Hibernate 创建 User 对象时,我需要自动绑定这两个字段(代码和国家代码)。
你需要@OneToMany
映射自Country
to User
实体和相应的@ManyToOne
映射自User
to Country
:
@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;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)