javax.persistence.NoResultException: getSingleResult () não recuperou nenhuma entidade

Eu criei uma consulta nomeada com ejb para verificar se o nome de usuário é usado. Quando o singleResult é nulo, recebo a seguinte exceção:

javax.persistence.NoResultException: getSingleResult() did not retrieve any entities

Mas essa exceção é o resultado que eu quero quando o nome de usuário é gratuito.

Aqui está o código:

 public User getUserByUsername(String username) throws DAOException{
    try{
        Query q = em.createNamedQuery(User.getUserByUsername);
        q.setParameter("username", username);
        return (User) q.getSingleResult();
    }catch(Exception e){
        throwException(username, e);
        return null;
    }
}

Alguém sabe qual é o problema. :(

Gostaria de retornar nulo e não recebo uma exceção.

Muito obrigado

questionAnswers(7)

yourAnswerToTheQuestion