JPA @ManyToOne, @OneToMany двунаправленное отношение - PullRequest
1 голос
/ 28 апреля 2020

Я изучаю двунаправленное картографирование. Я сопоставил команду и участника с аннотациями @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» в приведенном выше коде. Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...