Salve a todos!
Estou querendo implementar a seguinte consulta:
"SELECT IF(COUNT(codigo)=0,1,MAX(numero)+1) AS num,identificacao
FROM plano_de_acao PA,uep U
WHERE PA.uep_codigo = U.codigo AND uep_codigo = "+ uep
O que devo usar? Criteria ou Query???
Já tentei de várias formas, mas nada!
A última tentativa foi a seguinte:
@SuppressWarnings("unchecked")
public List<PlanoDeAcao> Numeracao(int uep){
Query criterio = session.createQuery("SELECT IF(COUNT(codigo)=0,1,MAX(numero)+1) AS num,identificacao FROM plano_de_acao PA,uep U " +
"WHERE PA.uep_codigo = U.codigo AND uep_codigo = "+ uep);
return criterio.list();
}
Reparem que eu estou utilizando 2 tabelas. Posso fazer isso com Hibernate???
No aguardo!
Cadê seu mapeamento desses objectos?
Sim, dá para fazer mapeamento 1:n, n:1 e n:n no hibernate numa boa.
Nestes casos costumo fazer assim:
@SuppressWarnings("unchecked")
public List<Usuario> buscaUsuario(String termo, int id_grupo){
String sql = " SELECT u.id_usuario, " +
" u.username, " +
" u.nome," +
" u.senha, " +
" u.email, " +
" u.liberado_web, " +
" u.ativo, " +
" u.admin_sistema, " +
" u.admin_replicacao, " +
" u.senha_oracle, " +
" u.id_entidade "+
" FROM usuario u, "+
" grupo_workflow_usuario gwu "+
" WHERE u.username = gwu.username "+
" AND gwu.id_grupo_workflow = :id_grupo "+
" AND (lower(u.nome) like lower(Decode(:usuario,'%null%',u.nome,:usuario)) " +
" OR lower(u.username) like lower(Decode(:usuario,'%null%',u.username,:usuario))) "+
" ORDER BY u.username";
return getSession().createSQLQuery(sql)
.addEntity(Usuario.class)
.setLong("id_grupo" , id_grupo)
.setString("usuario", "%"+ termo +"%")
.list();
}
Estou tentando assim:
@SuppressWarnings("unchecked")
public List<PlanoDeAcao> Numeracao(int uep){
String sql = "SELECT IF(COUNT(codigo)=0,1,MAX(numero)+1) AS num,identificacao FROM plano_de_acao PA,uep U " +
"WHERE PA.uep_codigo = U.codigo AND uep_codigo = "+ uep;
return getSession().createSQLQuery(sql).list();
}
E tentando recuperar assim:
String identUep = "";
String numero = "";
if(request.getParameter("uep") != null){
int uep = 0;
uep = Integer.parseInt(request.getParameter("uep"));
DaoLap daoLap = new DaoLap(HibernateUtil.currentSession());
List dados = daoLap.Numeracao(uep);
identUep = dados.get(1).toString();
numero = dados.get(0).toString();
}
Não está dando certo!
Página em branco.
[quote=by_stoco]
Não está dando certo!
Página em branco.[/quote]
Vc está utilizando qual IDE ? Eclipse ?
Rodando pela IDE, veja no console se dá alguma mensagem de erro!