2012-03-06 3 views
0

Предположим, у меня есть два класса с именем User and Authority.Запрос Grails с двунаправленной ассоциацией hasMany

Спецификация этих двух классов:

User{ 
    Integer id; 
    String userCode; 
    String password; 
    boolean active; 

    static hasMany = [authorities : Authority, userGroups : UserGroup] 

    static mapping = { 
     table("security_user") 
    } 
} 


Authority{ 
    Integer id 
    String roleTitle 
    String description 

    static hasMany = [features : Feature, users : User] 

    static belongsTo = User; 


} 

На уровне запросов, как я могу получить все те органы сопоставляются с одним конкретным объектом пользователя?

Как я пытался в следующем подходе:

user = User.findByUserCodeAndPassword(userCode,password); 
Set<User> users = new HashSet<User>(); 
users.add(user); 

List<Authority> authority = Authority.findAllByUsers(users); 

Но приведенный выше код дает время выполнения Grails исключение. Как я могу решить эту проблему?

ответ

2

Просто используйте user.authorities, не нужно делать все это после получения пользовательского объекта.

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