To fazendo um select tentando pegar o ultimo codigo na tabela, como jogo isso em um inteiro para retornar?
public int getMaxIdInscricao(){
Session sessao = HibernateUtility.getSession();
Transaction tx = sessao.beginTransaction();
int i;
Query select = sessao.createQuery("select max(ev.INS_ID) from TB_EVENTOS as ev");
tx.commit();
sessao.close();
}
Neste caso tua list vai ter um unico element, então você pode usar o método uniqueResult() ao invés de list() . Coloquei as duas formas pra te mostrar como iterar o resultado, pois pelo que vi vc não sabia.
[]1s clodoaldoJR
F
fhsantiago
Brigado Clodoaldo... mas ta dando um errinho de conversao ainda...
[code]
canot convert from object to integer
[quote]
foi um SQL exatemente igual
deu um erro de nome de coluna inválido , mas a coluna existe nesta tabela , e este select funciona perfeitamente pelo SQL navigator
select max(EVE_ID) from TB_EVENTOS
P
pabloiglesias
sera que eu posso utilizar o crateQuery em vez do createSQLQuery ? meus outros métodos funcionaram desta forma
grato
B
berdam
Galera, teria como fazer o select max mais genérico, tipo eu poderia fazer assim
publicLongSqlMax(Stringcampo,tabela){
Sessionsession=HibernateUtil.getSessionFactory().openSession();sql="select max("+campo+") from "+tabela+""Longcd=(Long)session.createQuery(sql).uniqueResult();if(cd!=null){
returncd;}elsereturn0;return0;}
Mas dessa forma, podem acontecer erros, pois o programador pode passar o nome da tabela errada ou fora de case sensitive.
Teria alguma forma de fazer
publicLongSqlMax(Entitytabela,Columncampo){
Sessionsession=HibernateUtil.getSessionFactory().openSession();sql="select max("+campo+") from "+tabela+""Longcd=(Long)session.createQuery(sql).uniqueResult();if(cd!=null){
returncd;}elsereturn0;return0;}
Dessa forma na hora de chamar o método só é permitido passar classes e campos que realmente existem, diminuindo a chance de erros.
Alguém??