to tentando fazer uma consulta com um campo String e está lançando uma exceção “NoResultException”, sendo que existe esse registro no banco.
Minha consulta é essa:
String hql = "SELECT c FROM Cadastro c WHERE c.codigounico =:pCodigoUnico ";
Query query = getEntityManager().createQuery(hql).setParameter("pCodigoUnico", codigo);
cadastro = (Cadastro)query.getSingleResult();
Eu passo o codigo 1140 e no banco existe. Se eu faço a consulta sql manualmente no banco, ele localiza. Se ele faz a consulta por essa String hql, não traz nada.
[quote=tek]acredito que seu erro seja a falta do .*
exemplo
String hql = "SELECT c.* FROM Cadastro c WHERE c.codigounico =:pCodigoUnico ";
Query query = getEntityManager().createQuery(hql).setParameter("pCodigoUnico", codigo);
cadastro = (Cadastro)query.getSingleResult();
Acesse: www.tiagoek.com.br[/quote]
em hql se você usar “select c” ele vai retornar o objeto sim, eu costumo fazer desse jeito inclusive.
nos campos alfa usando o setParameter acho que você tem que usar aspas mesmo como o tek disse, ele não vai adicionar como o setString do jdbc, mas se o seu objeto Query for o de org.hibernate ao invés de javax.persistence. então você vai ter um setString que seta com as aspas automaticamente de forma semelhante ao jdbc (supondo que você tem um retorno do tipo EntityManager do método getEntityManager, terá a Query do javax.persistence, se fosse um Session do hibernate teria o Query dele).