Hibernate Grails:如何在createCriteria中使用exists/notExists?

Hibernate Grails:如何在createCriteria中使用exists/notExists?,hibernate,grails,Hibernate,Grails,根据这个jira票证(),exists/notExists标准方法已添加到HibernateCriteriaBuilder中。我正在寻找有关使用此功能的帮助,因为我找不到任何文档 “exists”方法似乎将QueryableCriteria对象作为参数,但我不熟悉这个类,也找不到任何关于这个类的有用文档 我的简化班级结构: class Foo { static hasMany = [fooBars: FooBar] } class FooBar { static belongsTo =

根据这个jira票证(),exists/notExists标准方法已添加到HibernateCriteriaBuilder中。我正在寻找有关使用此功能的帮助,因为我找不到任何文档

“exists”方法似乎将QueryableCriteria对象作为参数,但我不熟悉这个类,也找不到任何关于这个类的有用文档

我的简化班级结构:

class Foo {
  static hasMany = [fooBars: FooBar]
}

class FooBar {
  static belongsTo = [Foo, Bar]

  Foo foo
  Bar bar
}

class Bar {
  String division
  static hasMany = [fooBars: FooBar]
}
我的目标是找到Foo的,或者:
a)没有关联的条形图

b)相关条的划分在指定字符串列表中(或不在指定字符串列表中)

现在我使用的是sqlRestriction,它工作正常,但我更喜欢使用HibernateCriteriaBuilder方法:

def crit = Foo.createCriteria()

def results = crit.list() {
  sqlRestriction("""  not exists (
    select 1 
    from 
      Foo_Bar fb 
      inner join Bar b 
        on Foo_Bar.bar_id = b.id 
    where 
      fb.foo_id = this_.id 
        and b.DIVISION in ('bad', 'terrible') )
   """)
}
我的代码使用的是'notexists',但是'exists'语法的一个例子也会有同样的帮助


谢谢

有没有任何非HQL的方法?