@ManyToMany проблема компиляции - PullRequest
0 голосов
/ 24 октября 2019

Я уже давно работаю над проблемой User - Role - Mapping, но в данный момент я застрял в этой проблеме: Ошибка вызова метода init;Вложенное исключение - org.hibernate.AnnotationException: использование @OneToMany или @ManyToMany для таргетинга на несопоставленный класс:

Пользователь

    @ManyToMany(fetch = FetchType.EAGER)
    @JoinTable(name = "users_roles", joinColumns = @JoinColumn(name = "user_id", referencedColumnName = "id"), inverseJoinColumns = @JoinColumn(name = "role_id", referencedColumnName = "id"))
    private Collection<Role> roles;

Роль

    @ManyToMany(mappedBy = "roles")
    private Collection<User> users;

    @ManyToMany
    @JoinTable(name = "roles_privileges", joinColumns = @JoinColumn(name = "role_id", referencedColumnName = "id"), inverseJoinColumns = @JoinColumn(name = "privilege_id", referencedColumnName = "id"))
    private Collection<Privilege> privileges;

Преимущества

    @ManyToMany(mappedBy = "privileges")
    private Collection<Role> roles;

Я полагаю, что проблема находится где-то между отношениями в структуре отображения. Любые предложения приветствуются.

1 Ответ

0 голосов
/ 24 октября 2019

Вы должны использовать свойство "mappedBy" во всех ваших аннотациях "@ManyToMany".

Пользователь

@ManyToMany(fetch = FetchType.EAGER, mappedBy = "users")
@JoinTable(name = "users_roles", joinColumns = @JoinColumn(name = "user_id", referencedColumnName = "id"), inverseJoinColumns = @JoinColumn(name = "role_id", referencedColumnName = "id"))
private Collection<Role> roles;

Роль

@ManyToMany(mappedBy = "roles")
private Collection<User> users;

@ManyToMany(mappedBy = "roles")
@JoinTable(name = "roles_privileges", joinColumns = @JoinColumn(name = "role_id", referencedColumnName = "id"), inverseJoinColumns = @JoinColumn(name = "privilege_id", referencedColumnName = "id"))
private Collection<Privilege> privileges;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...