Я использую Spring в сочетании с Hibernate в моем проекте.
Предположим, у меня есть таблица USER
, которая связана с ROLE
через кросс-таблицу и ROLE
таблицу по очередиснова связан с таблицей PERMISSION
через перекрестную таблицу.Таким образом, у каждого пользователя может быть несколько ролей, и каждая роль может иметь несколько разрешений, которые могут быть разделены между различными ролями.В orm у меня будет класс User, подобный этому:
class User {
// blah blah properties
@ManyToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
@JoinTable(name="USER_ROLE",
joinColumns={@JoinColumn(name = "USER_ID", nullable = false, updatable = false)},
inverseJoinColumns={@JoinColumn(name = "ROLE_ID", nullable = false, updatable = false)})
private Set<Roles> roles;
}
Теперь мне нужно иметь другое свойство в bean-компоненте User
, содержащем список разрешений пользователя в виде Strings (List<String> permissions
).Самый простой способ сделать это для меня был бы, если бы можно было вызвать какой-либо метод объекта User сразу после заполнения его свойств.Метод выполнит for
над ролями, а затем еще один над разрешениями и добавит их в список разрешений в объекте пользователя.
Или, возможно, hibernate / spring предоставит что-то для этого конкретного случая?1015 *
PS Я пытался найти это в Google, но безуспешно.