首页 > 解决方案 > JPA @ManyToOne,@OneToMany 双向关系

问题描述

我正在研究双向映射。我使用 @OneToOne 和 @ManyToMany 注释映射了 Team 和 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

}

主要方法

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());

    //...
}

结果:

成员:[]

我想知道为什么在上面的代码中没有将“成员”添加到“团队”的“成员字段”中。先感谢您。

标签: jpaone-to-manymany-to-onebidirectional-relation

解决方案


推荐阅读