我在表 Users
和 Groups
之间有一个 M:N 关系。现在我正在尝试使用 JPA 连接这两个表,但我总是遇到此异常:
Multiple writable mappings exist for the field [GROUPS.name]. Only one may be defined as writable, all others must be specified read-only.
这是我的 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;
这是 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;
我还尝试将 JoinTable
注释放入 Users
类中,但结果相同。在此先感谢您的任何建议。
最佳答案
在 Group
类中,您有两个映射列 name
作为属性 groupName 和 descr。
该错误与 ManyToMany 无关。
关于java - JPA 中的多对多映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8409118/