2011-09-02 4 views
0

J'écris une fonctionnalité de création de rapports pour un objet de domaine dans grails. Il y a un champ "balance" qui est BigDecimal. J'ai du mal à écrire la requête. Appréciez toute aide.Récupère la valeur BigDecimal de Grails params

Voir

<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> 

Contrôleur

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) 

Exception

groovy.lang.MissingPropertyException: Aucun bien: java pour la classe: grails.orm.HibernateCriteriaBuilder à colorthread.SaleController $ _closure9_closure23.doCall (SaleController.groovy: 289) à colorthread.SaleController $ _closu re9_closure23.doCall (SaleController.groovy)

+0

sans rapport - java.lang * est importé automatiquement dans Groovy (et Java) et java.math.BigDecimal est importé automatiquement dans Groovy, donc vous n'avez pas besoin des paquets complets là –

+0

Merci Burt ... gardez cela à l'esprit. Je suis un développeur newbie grails et je suis votre blog. –

Répondre

3

Il vous manque le nouveau mot-clé:.

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