2013-02-05 19 views
0

我在createCriteria的查詢中有一堆行,但是必須做一些更改,我需要隱藏行中的一個0和一個字母A在其他列中的行,但我贏了如果他們有0和另一個字母,就不會隱藏它們,我怎麼能在createCriteria中做到這一點?我唯一的解決方案是使用NAND,但它不存在我認爲...GRAILS: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 

有什麼建議嗎?

+0

哪些條件在SQL格式? SELECT * From MyEntity Where value == 0 and letter <>'A'? –

+0

但它也可以通過其他方式完成 – user1698253

回答

0

試試 「呢」,不 - 等於

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

您可以使用andne

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

這一個不起作用,因爲它不會顯示那些帶有A或0,我需要同時存在於同一行來隱藏 – user1698253

+0

這就是'和'的用途。 .. – doelleri

+0

這一個必須爲你工作。如果沒有,你做錯了事。 –

0

使用HQL,你可以這樣做:

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