I have a M:N relationship between table Users and Groups. Now I am trying to join those two tables using JPA and I always get this exception:
Multiple writable mappings exist for the field [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.
@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:
@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. Thanks in advance for any advices.
In the class
Groupyou have two mappings for columnnameas properties groupName and descr.The error is not related to the ManyToMany.