如果我没有链接域类中的字段,如何将表格与grails中的条件联系起来

时间:2015-03-31 06:54:04

标签: grails gorm criteria

我在域模型中有两个类:

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 {
}

2 个答案:

答案 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]
}