2013-04-01 6 views
0

У меня есть две таблицы, а именноJPA - Объединить две таблицы

USER_ROLE {user_id, Role} PK {user_id, role} 
ROLE_PERMISSION {role, permission} PK {role, permission} 
  1. Пользователь может иметь несколько ролей.
  2. Роль может быть сопоставлена ​​нескольким Разрешения.

У меня есть объект - ПОЛЬЗОВАТЕЛЬ, который хранит информацию о пользователе. Эта информация извлекается через LDAP (не БД) при первом входе в систему. Теперь, для моих аспектов авторизации, мне нужно также получить dtls на разрешениях пользователя из вышеупомянутых таблиц.

Так что я предположил бы, что добавление атрибутов к моему существующему объекту USER

USER { 
    user_id, 
    first_name, 
    last_name, 
    etc 

    // Authorization 
    List<String> roles; 
    List<String> permissions; 
} 

Может кто-то пожалуйста помочь, как я могу использовать JPA для заполнения ролей и разрешений списков? Посмотрев через Интернет, не могу понять это. thanks

ответ

1

Я бы создал таблицу USER в вашей базе данных и сопоставил ее с объектом User с ролью и разрешениями. Затем объект User будет содержать дополнительные данные LDAP.

Без таблицы USER вам не на что сопоставить.

В противном случае просто запросите базу данных с использованием собственных SQL-запросов и заполните свой пользовательский объект LDAP самостоятельно.

+0

спасибо Джеймс. Я создал два объекта для USER_ROLE и ROLE_PERMISSION, а затем использовал JPA Query для извлечения информации из БД и затем закодировал для заполнения объекта User. Не очень элегантное решение, но сейчас работает. – Rohit

Смежные вопросы