简体   繁体   English

JPA中的ManyToMany映射

[英]ManyToMany mapping in JPA

I have a M:N relationship between table Users and Groups . UsersGroups之间有M:N关系。 Now I am trying to join those two tables using JPA and I always get this exception: 现在,我尝试使用JPA将这两个表连接起来,并且总是会遇到此异常:

Multiple writable mappings exist for the field [GROUPS.name]. [GROUPS.name]字段存在多个可写映射。 Only one may be defined as writable, all others must be specified read-only. 只有一个可以定义为可写,所有其他必须以只读方式指定。

Here is my Users class (I didn't enclose getters and setters for brevity), it's implemented by Admin class and SignedUser class with some additional properties. 这是我的Users类(为简便起见,我没有包含getter和setter),它是由Admin类和SignedUser类实现的,并带有一些其他属性。

@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public class Users implements Serializable {

    @Id
    @Column(name = "login", nullable = false, length = 10)
    private String login;

    @Column(name = "name", nullable = false, length = 30)
    private String name;

    @Column(name = "surname", nullable = false, length = 50)
    private String surname;

    @Column(name = "email", nullable = false, length = 100)
    private String email;

    @Column(name = "password", nullable = false, length = 20)
    private String password;

    @ManyToMany(mappedBy="users")
    private List<Groups> groups;

and this is the Group class: 这是Group类:

@Entity
public class Groups implements Serializable {

    @Id
    @Column(name = "name", nullable = false, length = 20)
    private String groupName;

    @Column(name = "name", nullable = false, length = 50)
    private String descr;

    @ManyToMany
    @JoinTable(name = "user_group",
               joinColumns = {@JoinColumn(name = "groupName")},
               inverseJoinColumns = {@JoinColumn(name = "login")})
    private List<Users> users;

I've also tried to put JoinTable annotation into Users class but it ended with the same result. 我还尝试过将JoinTable批注放入Users类,但结果相同。 Thanks in advance for any advices. 提前感谢任何建议。

In the class Group you have two mappings for column name as properties groupName and descr . 在类Group您有两个列name映射作为属性groupNamedescr

The error is not related to the ManyToMany. 该错误与ManyToMany无关。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM