Criteria + Between + Data = Erro
22/12/2009 00:00
0
Olá pessoal,
estou usando o createCriteria para obter informações no entanto preciso usar o between de um campo data. Fiz o mapeamento usando como String para o campo 'tradeDate' assim como é na tabela. Mas ao usar o código abaixo:

def results = Boleta.withCriteria{
and{
between('tradeDate', params.dateInitial, params.dateFinal)
'in'('vendor', lstVendor)
}
order('number')
}

Ele não me retorna corretamente.. tem retornado registros fora da condição definida. Já usei o campo como java.sql.Date no mapeamento e mesmo assim dava outros erros. Observação: estou usando Oracle Database.
Como posso resolver esse problema?
Tags: Grails


0
Olá,

na sua base de dados, você está armazenando o campo do tipo data como texto? Se for, pode estar ai a razão para o seu problema.
Se não, há algumas coisas que você pode verificar:

* Se estiver filtrando as datas a partir de componentes textuais, utilize a classe SimpleDateFormat para parsear as suas strings para a data apropriada e em seguida enviá-las para a sua consulta. Muito provávelmente, o valor fornecido pode estar errado.
* Se estiver usando o g:datePicker, verifique o valor que ele está te retornando também (um println no controlador irá lhe ajudar nisto).



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto