Grails - findAll连接两个表

Grails - findAll joining two tables

我是 Grails 新手。我在从数据库中检索数据时遇到问题。我有 类 的域,例如...

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

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

class UserAccount {
   String username
   ...
}

我想列出 ID=4 的用户所拥有的所有 "Lightboxes"。我在尝试

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

def my_lb = Lightbox.findAllByUsers(4)

None 这些对我有用。我究竟做错了什么?谢谢

试试这个:

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

所以我做的略有不同,而是使用标准。有兴趣可以看看

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

它似乎有效。不过还是感谢您的回复