GRAILS: createCriteria NAND

У меня есть несколько строк из моего запроса в 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

любое предложение?


person user1698253    schedule 05.02.2013    source источник
comment
Какие условия в формате SQL? ВЫБЕРИТЕ * From MyEntity Где значение == 0 и буква ‹› 'A'?   -  person Miguel Prz    schedule 05.02.2013
comment
но это можно сделать и по-другому   -  person user1698253    schedule 05.02.2013


Ответы (3)


Вы можете использовать and и ne для:

createCriteria.list {
    and {
        ne 'value', 0
        ne 'letter', 'A'
    }
}
person doelleri    schedule 05.02.2013
comment
этот не работает, потому что он не будет отображать те, у которых есть A или 0, мне нужно, чтобы оба существовали в одной строке, чтобы скрыть - person user1698253; 05.02.2013
comment
Этот должен работать на вас. Вы делаете что-то не так, если это не так. - person James Kleeh; 06.02.2013

попробуйте "ne", not - равно

createCriteria.list{
   and{
      eq('value',0)
      ne('letter','A')  
   }
}
person Miguel Prz    schedule 05.02.2013

Используя HQL, вы можете:

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