В моей базе 4 таблицы. Пользователь (который имеет столбец role_id в качестве внешнего ключа), Роль , Разрешение и промежуточную таблицу с именем RolePermission (в качестве отношения между ролью и разрешением - M: N)
Я хочу получить все разрешения определенного пользователя c на основе его role_id.
Промежуточная таблица определяется следующим образом:
CREATE TABLE role_permission
(
role_id TINYINT NOT NULL,
perm_id TINYINT NOT NULL,
CONSTRAINT role_permission_pk PRIMARY KEY (role_id, perm_id),
CONSTRAINT role_permission_f1 FOREIGN KEY (role_id) REFERENCES role (rid),
CONSTRAINT role_permission_f2 FOREIGN KEY (perm_id) REFERENCES permission (pid)
);
и сущность, связанная с этой таблицей, выглядит следующим образом:
@Entity
@Table(name = "role_permission")
public class RolePermission {
@EmbeddedId
private RolePermissionPK id;
@ManyToOne
@JoinColumn(name = "role_id", referencedColumnName = "rid", insertable = false, updatable = false)
private Role role;
@ManyToOne
@JoinColumn(name = "perm_id", referencedColumnName = "pid", insertable = false, updatable = false)
private Permission permission;
...
}
, но когда я пытаюсь получить это поле в своем классе User , возвращается Ничего:
@OneToMany(mappedBy = "role")
private List<RolePermission> permissions;
База данных работает правильно, и все объекты, включая Role, Permission и RolePermission, также работают без нареканий. Но я не могу понять отсутствующую связь между классом RolePermission и классом User.