2011-09-02 71 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))