2013-03-06 6 views
0

Возможно ли решить математическую задачу внутри createCriteria?Могу ли я выполнить математическую операцию внутри createCriteria

Например:

Если в моей таблице у меня есть два столбца, если два вместе сделать 100 Я не хочу, чтобы показать это в моем результате запроса

или

если другой столбец находится в другой таблице?

стол

column 1 column 2 

    50  50 
    20  20 

Я хочу, чтобы второй ряд

или

table 1  table 2 

    50   50 
    20   20 

ответ

3

Одним из вариантов было бы определить поле формулы в классе домена. Что-то вроде:

class SumFormula { 
    Integer column1 
    Integer column2 
    Integer sum 

    static mapping = { 
     sum formula: 'column1 + column2' 
    } 
} 

Затем вы можете применить критерии следующим образом:

SumFormula.createCriteria().list() { 
    ne("sum", 100) 
} 
+0

спасибо, это может работать, но с использованием внешней таблицы? – user1698253

+0

Производные ('formula') - это выражения SQL, поэтому перемещаться между таблицами/классами непросто. Возможно, вам удастся получить представление о SQL, но несколько ограничено/негибким образом. –