Как сделать соединение по критериям GORM с классом домена без ассоциации? - PullRequest
0 голосов
/ 05 декабря 2011

Я использую критерии GORM для получения списка пользователей Spring Security с фильтрацией и сортировкой по свойствам пользователя, и я хотел бы отсортировать по роли безопасности Spring, затрагиваемой для каждого пользователя. Обычно я мог бы сделать что-то вроде этого:

User.createCriteria() {
    [...]
    userRoles {
        role {
            order("code", "asc")
        }
    }
}

но я не могу сделать это здесь, поскольку Spring Security не определяет связи между User и UserRole и между userRole и Role. Я пытался найти способ присоединиться к UserRole, несмотря на отсутствие ассоциации с пользователем, но безуспешно. Я также мог бы определить ассоциации hasMany в User и Role, но, возможно, Spring Security не делает этого по уважительной причине. Что было бы лучшим решением в этом случае?

Спасибо

Ответы [ 2 ]

0 голосов
/ 16 августа 2012

Может быть уже поздно.

В случае, если вы используете плагин Spring Security (который я предполагаю), вы обнаружите, что плагин сгенерировал класс SecUserSecRole , который связываетSecUser для SecRole. Ссылка

Это позволяет устанавливать отношения «многие ко многим» между пользователями и ролями.

В вашем случае, я думаю, лучше создать критерии для SecUserSecRoleвместо User

0 голосов
/ 05 декабря 2011

Насколько я знаю, нет причины, по которой вы не должны добавлять эти отображения самостоятельно

...