Consulta específica com Hibernate

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&lt;PlanoDeAcao&gt; 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.

Não seria uma boa usar named query?
Dá uma olhada em :

http://www.java2s.com/Code/Java/Hibernate/GetNamedHQLQueryfromMappingFile.htm

[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!