Pessoal,
Tenho um sistema com EJB3 + JPA + HIBERNATE e não estou conseguindo resolver um problema com os parametros das querys, esta igual aos tutoriais que encontrei por ai, o problema é o seguinte, se eu faço a seguinte query:
final String queryString = “select usuario from Usuario usuario where login = ‘joao’”;
Query query = entityManager.createQuery(queryString);
List<Usuario> lstUsuario = query.getResultList();
eu consigo receber o usuario joao sem problema, mas quando passo isso por parametro nao consigo receber o resultado da query
o codigo completo seria o seguinte:
String strWhere = “”;
try {
final String queryString = "select usuario from Usuario usuario";
if (usuario.getLogin() != null && !usuario.getLogin().equals("")){
strWhere = (strWhere == "") ? " where " : strWhere + " and ";
strWhere = strWhere + "login = ?";
}
if (usuario.getSenha() != null && !usuario.getSenha().equals("")){
strWhere = (strWhere == "") ? " where " : strWhere + " and ";
strWhere = strWhere + "senha = ?";
}
Query query = entityManager.createQuery(queryString + strWhere);
if (usuario.getLogin() != null && !usuario.getLogin().equals("")){
query.setParameter(1, usuario.getLogin());
}
if (usuario.getSenha() != null && !usuario.getSenha().equals("")){
query.setParameter(2, usuario.getSenha());
}
List<Usuario> lstUsuario = query.getResultList();
if (lstUsuario.size() < 1) {
return null;
}else{
return (Usuario) lstUsuario.get(0);
}
} catch (Exception e) {
inicialmente eu fiz usando o ":nomeparam", mas nao funcinou, entao coloquei como sempre usei e continuou sem retornar nem um resultado.
obs. o banco é o mysql