2016-10-03 79 views
1

我想建立比較如圖所示添加兩個字段的派生屬性值的標準, Can I do a math operation inside a createCriteria,即GORM for MongoDB:派生屬性?

class SumFormula { 
    Integer column1 
    Integer column2 
    Integer sum 

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

和標準:

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

但是我做不到使其與MongoDB一起工作。打印輸出時,派生屬性始終爲空。

上面引用的文章確實提到了派生屬性是SQL表達式,所以問題是隻有GORM for SQL可用的派生屬性? GORM for MongoDB的其他選擇?

回答

0

派生屬性是一個Hibernate/SQL特有的功能,在MongoDB中不支持GORM。另一種方法是簡單地在代碼中執行此操作:

class SumFormula { 
    Integer column1 
    Integer column2 
    Integer getSum() { column1 + column2 } 

} 
0

我們正面臨同樣的問題。目前,我們的解決方法是實際將派生屬性存儲在MongoDB中,並使用beforeUpdate方法來計算值。

def beforeUpdate() { 
    sum = column1 + column2 
}