ManyToMany отображение в JPA - PullRequest
       3

ManyToMany отображение в JPA

1 голос
/ 07 декабря 2011

У меня есть отношение M: N между таблицей Users и Groups. Сейчас я пытаюсь объединить эти две таблицы с помощью JPA, и я всегда получаю это исключение:

Для поля [GROUPS.name] существует несколько доступных для записи отображений. Только один может быть определен как доступный для записи, все остальные должны быть указаны только для чтения.

Вот мой класс Users (для краткости я не включал геттеры и сеттеры), он реализован классом 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, но она закончилась тем же результатом. Заранее спасибо за любые советы.

1 Ответ

3 голосов
/ 07 декабря 2011

В классе Group у вас есть два сопоставления для столбца name как свойства groupName и descr .

Ошибка не связана с ManyToMany.

...