在所有情况下,返回所有关联行的createAlias()解决方案均无效
||
假定以下域对象:
UserChallenge {
String invitationKind
}
ChallengeGroup {
UserChallenge challenge
UserGroup group
}
UserGroup {
name
}
以下查询通过组关联(部分填充有匹配组)返回质询:
UserChallenge.withCriteria {
eq(\'invitationKind\', \'GROUP\')
groups {
\'in\'(\'group.id\', visibleGroupIds)
}
}
在帖子http://adhockery.blogspot.com/2009/06/querying-by-association-redux.html中,它建议使用createAlias()并修改上面的查询似乎可行:
UserChallenge.withCriteria {
eq(\'invitationKind\', \'GROUP\')
createAlias(\'groups\', \'g\')
\'in\'(\'g.group.id\', visibleGroupIds)
}
但是,以下操作无效:
UserChallenge.withCriteria {
or {
eq(\'invitationKind\', \'OPEN\')
and {
eq(\'invitationKind\', \'GROUP\')
createAlias(\'groups\', \'g\')
\'in\'(\'g.group.id\', visibleGroupIds)
}
}
}
并且仅返回匹配可见组ID的挑战,而不返回\'OPEN \'的挑战。在哪里放置createAlias()调用似乎并不重要。
以下工作正常:
UserChallenge.withCriteria {
or {
eq(\'invitationKind\', \'OPEN\')
and {
eq(\'invitationKind\', \'GROUP\')
groups {
\'in\'(\'group.id\', visibleGroupIds)
}
}
}
}
除了它返回仅具有匹配组的挑战(我正在尝试解决的原始问题)。
没有找到相关结果
已邀请:
1 个回复
导力疵谜