本例涉及的表(ym_user)一的一方,表(ym_sub_user)多的一方,在写代码时,需要建立表,并建立ym_sub_user中设置外键关联ym_user。表的字段如下:
ym_user(id,name)
ym_sub_user(id,user_id,subname)
其中user_id是外键关联表ym_user
两个体类的代码如下:
@Entity
@Table(name = "YM_USER")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@Column(name = "name")
private String name;
@OneToMany(mappedBy="user",fetch=FetchType.EAGER)
private Set<SubName> subNameList = new HashSet<SubName>();
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Set<SubName> getSubNameList() {
return subNameList;
}
public void setSubNameList(Set<SubName> subNameList) {
this.subNameList = subNameList;
}
}
@Entity
@Table(name = "ym_sub_user")
public class SubName {
@Id
private int id;
@Column(name = "sub_name")
private String subName;
@ManyToOne(targetEntity = User.class)
@JoinColumn(name="user_id")
private User user;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getSubName() {
return subName;
}
public void setSubName(String subName) {
this.subName = subName;
}
}
这样就完成了一对多和多对一的注解