Boa tarde galera!
Bom, tenho a seguinte situação: estou tentando fazer uma pesquisa com Criteria e Restrictions em Hibernate e não consigo fazer uma comparação em um campo do tipo Float.
Fiz alguns debugs e as variaveis estão todas corretas, mas sempre que eu informo uma comparação com o campo do tipo float o criteria não retorna registro algum.
Segue o método de pesquisa:
public List<NFComprasVO> pesquisarNFCompra(int i_id,
String i_empresa, int i_numeronf, String i_referencia,
float i_valortotal, String i_nomefantasia, String i_razaosocial,
String i_dataemissao, String i_datavencimento) throws Exception { //não olhem assim pra mim, pediram o método desse jeito...
try {
HibernateEntityManager hibernate = (HibernateEntityManager) em;
Session session = hibernate.getSession();
Criteria criteria = session.createCriteria(NFComprasVO.class);
criteria.createAlias("fornecedor", "fornecedorAlias");
if (i_valortotal != 0) {
criteria.add(Restrictions.eq("valortotalnota", new Float(i_valortotal))); //AQUI !!!
}
//outras comparações...
criteria.setResultTransformer(criteria.DISTINCT_ROOT_ENTITY);
return (List<NFComprasVO>) criteria.list();
} catch (Exception ex) {
throw new Exception(ex.getMessage() + FONTE + "pesquisarNFCompra()");
}
}
Tooda vez que ele cai naquele bloco de comparação de valortotal ele não retorna registros… nos debugs a variavel i_valortotal apareceu EXATAMENTE com o mesmo valor (em float) que esta persistido na base de dados e ainda assim a comparação não funciona.
Já tentei sem esse ‘new Float(i_valortotal)’ e também não obtive sucesso.
Alguma dica?