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
}
它似乎有效。不过还是感谢您的回复
我是 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
}
它似乎有效。不过还是感谢您的回复