我正在尝试从一系列通过havingMany / belongsTo属性链接在一起的域类中获取项目列表 - 这里是链的概述:
OrganisationShr ---- (hasMany) ->
UserShr ---- (hasMany) ->
VideoShr ---- (hasMany) ->
PublishedShr
我想获得一个组织的所有已发布的列表,该组织由当时登录的用户标识。
要识别组织,我必须从当前登录的用户上升链。一旦找到组织,就可以通过简单的链搜索来获取已发布的列表。
但我的问题是从当前登录用户上升到组织 - 这是我正在使用的查找代码:
从会话用户名中找到用户:
def usersId = UserShr.findByName(session.user.name)
returnValue = PublishedShr.findAll
{
VideoShr.findAll{
UserShr.findAll{OrganisationShr.findAll{idEq(UserShr.get(usersId))}}
}
}
我一直在尝试围绕这个基本查找结构的各种不同方法。
我知道我可以设置一个条件条件来进行这种类型的连接。然而,动态查找器方法对我来说似乎更简单 - 因为我对这些类型的连接的经验有限。此外,在任何时候将连接发现放在一起的能力似乎都很强大且灵活 - 我想必须有一些回归这样做,如性能/响应?很高兴指向一个合适的网站链接,以了解更多信息。
提前致谢。
更新
每个域类的关注部分:
class OrganisationShr {
static hasMany = [userId: UserShr]
static fetchMode = [userId: 'eager']
}
class UserShr {
static belongsTo = [ organId: OrganisationShr]
static hasMany = [videoId: VideoShr]
static fetchMode = [videoId: 'eager']
}
class VideoShr {
static belongsTo = [ userId: UserShr]
static hasMany = [publId: PublishedShr]
static fetchMode = [publId: 'eager']
}
class PublishedShr {
static belongsTo = [ videoId: VideoShr]
}