2015-02-10 85 views
0

我是新来的Grails。我在从数据库中检索数据时遇到问题。我有类的域名,类似...Grails - findAll加入两张表

class Lightbox {  
    String name = '' 
    String link = '' 
    static hasMany = [users: LightboxUserAccount] 
} 

class LightboxUserAccount { 
    UserAccount userAccount 
    static belongsTo = [lightbox: Lightbox] 
} 

class UserAccount { 
    String username 
    ... 
} 

我想列出ID = 4的用户拥有的所有“灯箱”。我试图

def my_lb = Lightbox.findAll("from Lightbox as lb where lb.users=:userAccount", [userAccount: springSecurityService.getCurrentUser()]) 

我的工作
def my_lb = Lightbox.findAllByUsers(4) 

无。我究竟做错了什么? THX

+0

'from Lightbox as lb where use.userrs.userAccount =:userAccount'? – cfrick 2015-02-10 16:15:33

回答

0

所以我做到了略有不同,采用的标准来代替。看看如果有兴趣

static getAllByUserAccount(UserAccount userAccount) { 
    def criteria = Lightbox.createCriteria() 
    def my_lb = criteria.list { 
     users { 
      eq('userAccount', userAccount) 
     } 
    } 
    return my_lb 
} 

它似乎工作。感谢您通过

0

试试这个:

Lightbox.findAll("from Lightbox as lb where :userAccount in (lb.users)", [userAccount: springSecurityService.getCurrentUser()])