Duvida no Query.getSingleResult()?

pessoal tem uma query q me retorna um objeto, so q se tiver um parametro errado ele da “javax.persistence.NoResultException” eu queria que ele me retornasse nullo ! eu tenho que usar um try para isso mesmo ? ou como faco para na hora do meu Query.getSingleResult() ele retornar nullo sem dar erro ?

Caused by: javax.persistence.NoResultException: No entity found for query
	at org.hibernate.ejb.QueryImpl.getSingleResult(QueryImpl.java:275)

vc vai mesmo que usar um bloco try/catch…

no catch vc trata a excessão NoResultException setando o objeto null…

é andei procurando, e so isso mesmo q eu vi, muito esquesito e feio, mas o getResultList() retorna nullo !

Query.getResultList() não retorna null, ele retorna uma lista vazia em caso não hajam resultados p/ a query. Agora o Query.getSingleResult() lançar uma exceção quando nenhum resultado é encontrado está correto. O Java não possui meios eficientes de se implementar NullObject então notificar da ausência de resultados por meio de uma exceção me parece melhor q retornar null. Afinal de qualquer forma vc vai precisar escrever um código só p/ testar se a query retornou algum resultado, então q seja um código dedicado a esse tipo de checagem como um bloco try/catch.

E também getSingleResult() é para ser usado em caso de certeza do retorno de um objeto.
Retornar nenhum ou mais de um vai gerar uma exceção.