2015-02-10 84 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()])