"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")publicList<PlanoDeAcao>Numeracao(intuep){Querycriterio=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);returncriterio.list();}
Reparem que eu estou utilizando 2 tabelas. Posso fazer isso com Hibernate???
Sim, dá para fazer mapeamento 1:n, n:1 e n:n no hibernate numa boa.
M
marceloplis
Nestes casos costumo fazer assim:
@SuppressWarnings("unchecked")publicList<Usuario>buscaUsuario(Stringtermo,intid_grupo){Stringsql=" 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";returngetSession().createSQLQuery(sql).addEntity(Usuario.class).setLong("id_grupo",id_grupo).setString("usuario","%"+termo+"%").list();}
by_stoco
Estou tentando assim:
@SuppressWarnings("unchecked")publicList<PlanoDeAcao>Numeracao(intuep){Stringsql="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;returngetSession().createSQLQuery(sql).list();}