我在域模型中有两个类:
class Project {
String name
Integer fund
}
class Task {
String name
Integer weight
Project project
}
如何通过Task.name ="以及#34;?
获取项目如果我需要Project with Project.name ="&#34 ;,我可以通过createAlias的标准来完成,但我怎样才能加入任务
c = Project.createCriteria()
criteriaRes = c.list {
}
答案 0 :(得分:4)
我不确定这是否会有所帮助,但我已经使用SQL做了很多工作,所以当我想知道如何创建标准或我在哪里查询时HQL,因为它与SQL类似。如果您不打算使用NoSQL数据库,HQL是一个不错的选择,但标准和查询可以在GORM实现中移植。
所以做你想要的HQL查询是
def projects = Task.executeQuery(
'select t.project from Task t where t.name=:taskName',
[taskName: 'something'])
然后是
的分类标准查询def projects = Task.createCriteria().list {
eq 'name', 'something'
projections {
property 'project'
}
}
答案 1 :(得分:0)
除了Burt的回答之外,我认为您需要(或者应该作为最佳实践)正确定义的2个域类之间的关系:
class Project {
String name
Integer fund
static hasMany = [tasks: Task]
}
class Task {
String name
Integer weight
static belongsTo = [project: Project]
}