0
说我有以下的域对象:的Grails GORM有条件的左外连接
class Top {
User createdBy
Other other
static hasMany = [
children: Child,
]
}
class Child {
User createdBy
static belongsTo = [
top: Top,
]
}
并给予用户MYUSER和其他myOther,我要选择所有的上衣,其中
top.other.id = myOther.id和
加入所有的孩子如果top.createdBy = MYUSER OR
如果top.createdBy!= MYUSER,只能加入孩子们在那里child.createdBy = MYUSER(或者无子女)
这是我试过(以及许多其他失败的变化):
Top.createCriteria().list{
eq('other', myOther)
createAlias('children', 'c', JoinType.LEFT_OUTER_JOIN)
children {
or {
isNull('c')
eq('createdBy', myUser)
and {
ne('createdBy', myUser)
eq('c.createdBy', myUser)
}
}
}
}
但这种失败“org.hibernate.QueryException:重复协会路径:儿童”和无用的堆栈跟踪。
任何提示?提前致谢!