代码之家  ›  专栏  ›  技术社区  ›  Rüdiger

如何创建不在主键上休眠的@ManyToMany映射

  •  0
  • Rüdiger  · 技术社区  · 6 年前

    • User (ID, name) 其中name是唯一的行 ID 是PK吗
    • Role (ID, name) 哪里 是PK吗

    现在我知道我可以用JPA连接这些

    在我的用户中:

    @ManyToMany(cascade = { CascadeType.PERSIST, CascadeType.MERGE })
    @JoinTable(name = "UserHasRole", joinColumns = @JoinColumn(name = "user_id"),
            inverseJoinColumns = @JoinColumn(name = "role_id"))
    private List<RoleEntity> roles = new ArrayList<>(); 
    

    在角色方面:

    @ManyToMany(mappedBy = "roles")
    private List<UserEntity> users = new ArrayList<>();
    

    到目前为止还可以,但我想用 UserEntity name 而不是 id @ManyToMany -关系。我该怎么做?

    中的我的列定义 用户实体 :

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "ID")
    private int id;
    
    @Column(name = "NAME", nullable = false, unique = true)
    private String name;
    
    0 回复  |  直到 6 年前