2011-09-02 74 views
0

我正在爲Grails中的Domain對象編寫報告功能。有BigDecimal字段的「平衡」。我在編寫查詢時遇到了麻煩。感謝任何幫助。從Grails params獲取BigDecimal值

查看

<tr class="prop"> 
<td valign="top" class="name"> 
<label for="balance"><g:message code="sale.balance.label" default="Balance" /></label> 
</td> 
<td valign="top" class="value"> 
<g:textField name="balance" value="${params.balance}" /> 
</td> 
</tr> 

控制器

def c = Sale.createCriteria() 
def saleList = c.list { 
if(params.id) 
    idEq(java.lang.Long.parseLong(params.id)) 
if(params.customerName) 
    like('customerName', params.customerName+"%") 
if(params.customerPh) 
    like('customerPh', params.customerPh+"%") 
if(params.balance) 
    ge('balance', java.math.BigDecimal(params.balance)) 
if(params.totalSale) 
    ge('totalSale', params.totalSale) 

異常

groovy.lang.MissingPropertyException:沒有這樣的特性:在colorthread.SaleController $ grails.orm.HibernateCriteriaBuilder :JAVA類_closure9_closure23.doCall(SaleController.groovy:289) at colorthread.SaleController $ _closu re9_closure23.doCall(SaleController.groovy)

+0

無關 - java.lang中的*是在Groovy(和Java)和java.math.BigDecimal中自動導入是在Groovy中自動導入的,因此您不需要那裏的完整軟件包 –

+0

感謝Burt ...會牢記這一點。我是新手Grails開發者,我會關注你的博客。 –

回答

3

你缺少關鍵字:

ge('balance', new java.math.BigDecimal(params.balance))