JPA@manytone、@OneToMany双向关系
我在学习双向映射。 我用@OneToOne和@manytomy注释映射了团队和成员JPA@manytone、@OneToMany双向关系,jpa,one-to-many,many-to-one,bidirectional-relation,Jpa,One To Many,Many To One,Bidirectional Relation,我在学习双向映射。 我用@OneToOne和@manytomy注释映射了团队和成员 @Entity public class Team { @Id @GeneratedValue private Long id; private String name; @OneToMany(mappedBy = "team") private List<Member> members=new ArrayList<Member>();
@Entity
public class Team {
@Id @GeneratedValue
private Long id;
private String name;
@OneToMany(mappedBy = "team")
private List<Member> members=new ArrayList<Member>();
//omit getter, setter ,toString
}
@Entity
public class Member {
@Id
@GeneratedValue
private Long id;
@Column(name="USERNAME")
private String name;
@ManyToOne
@JoinColumn(name="TEAM_ID")
private Team team;
@Enumerated(EnumType.STRING)
private Status status;
//omit getter, setter , toString
}
结果:
成员:[]
我想知道为什么在上面的代码中“团队”的“成员”字段中没有添加“成员”。
提前谢谢。这是否回答了您的问题?谢谢你的回答。我理解,就我而言,成员实体是协会的所有者。但是,我不知道为什么不能使用team.getMembers()读取成员信息。这是否回答了您的问题?谢谢你的回答。我理解,就我而言,成员实体是协会的所有者。但是,我不知道为什么不能使用team.getMembers()读取成员信息。
public static void main(String args[]){
//...
Team team= new Team();
team.setName("RedTeam");
em.persist(team);
Member member= new Member();
member.setName("me");
member.setStatus(Status.ADMIN);
member.setTeam(team);
em.persist(member);
Member findmember= em.find(Member.class, member.getId());
Team findTeam= findmember.getTeam();
System.out.println("members: "+findTeam.getMembers());
//...
}