GRAILS:createCriteria NAND

时间:2013-02-05 15:37:27

标签: grails createcriteria

我在createCriteria中查询了一堆行,但是必须进行一些更改,我需要隐藏列中的0和其他列中的字母A的行,但我不会隐藏它们如果他们有0和另一个字母,我怎么能在createCriteria中做到这一点?我唯一的解决方案是使用NAND,但我认为它不存在......

             createCriteria.list{
                     nand{
                          eq('value',0)
                          eq('letter','A')  
                     }
             }


             TABLE
             VALUE          LETTER
             0              A                HIDE
             0              B                NOT HIDE
             1              A                NOT HIDE

有什么建议吗?

3 个答案:

答案 0 :(得分:2)

您可以将andne用于:

createCriteria.list {
    and {
        ne 'value', 0
        ne 'letter', 'A'
    }
}

答案 1 :(得分:0)

尝试“ne”,而不是 - 等于

createCriteria.list{
   and{
      eq('value',0)
      ne('letter','A')  
   }
}

答案 2 :(得分:0)

使用HQL,您可以:

def result = Object.executeQuery(
   "from Object o where o not in " +
       "(from Object o2 where o2.value = '0' and o2.letter = 'A')",
  )