Я изучаю двунаправленное картографирование. Я сопоставил команду и участника с аннотациями @OneToOne и @ManyToMany.
@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
}
основной метод
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());
//...
}
результаты:
члены: []
Интересно, почему «члены» не были добавлены в «поле участников» «Team» в приведенном выше коде. Заранее спасибо.