class File {
String name
File parent;
static belongsTo =[parent:File ]
static hasMany = [childrens:File];
static mapping = {
table 'Info_File'
id(generator:'sequence', params: [sequence: 'seq_file'])
parent:[lazy:"true",cascade:"none"]
children joinTable:[name:'children', key:'parent_Id', column:'Id',lazy:"true",inverse:"false",cascade:"none"]
}
static constraints = {
parent(nullable:true)
}
}
现在我想得到父id = 1的所有文件 我怎么能这样做?
我尝试使用
def fileList = File.findAllByParent(File.get(1L))
但它会发送2个sql,第一个是获取我不想要的父文件信息。
是否有任何方法,如File.findAllByParentId(1L)
3×
感谢。
parent{eq('key', 1)}
//sql:from Info_File this_ left outer join Info_File parent_ali1_
//on this_.parent_id=parent_ali1_.id where (parent_ali1_.id=?)
但我不需要加入表格。 所以我试试
eq('parent.id',1L)
//it's what i need:
//from Info_File this_ where this_.parent_id=?
答案 0 :(得分:3)
我不认为你可以通过动态查找器来完成它,但你应该能够使用Hibernate来创建一个createCriteria
File.createCriteria().list{
parent{
eq('key', 1)
}
}