public void ultimoValor(){
Transaction tx = session.beginTransaction();
session.createQuery(“SELECT MAX(id) from produto”);
tx.commit();
}
…</blockquote>Só 1 duvidinha: como vc vai retornar o maior ‘id’ se o método ‘ultimoValor()’ retonorna 1 ‘[color=red]void[/color]’??! :shock:
C
cleison
realmente.
tenho um metodo que lista tudo. Neste list daria para usar o criteria trazer o ultimo valor e somar mais um para informar no campo codigo o valor do proximo registro
Pra pega o ultimo id com criteria tenta isso, depois so soma 1.
Criteria c = getSession().createCriteria(Loja.class).setProjection((Projections.max("id")));
Long total = (Long) c.uniqueResult();
D
derlon
cleison:
realmente
…
A propósito, vc tem [color=red]restrição[/color] de [color=red]não[/color] poder usar Auto-Increment??! :hunf:
Afinal, qual é a sua dúvida (poderia ser + claro)??!
Lucas_Cavalcanti
no campo anotado com @Id, anota tb com @GeneratedValue, daí vc não precisa se preocupar com isso… é bem melhor
C
cleison
Desculpa não fui claro na dúvida.
tenho um cadastro de produtos.
Para inserir um novo registro gostaria de mostrar o proximo id a ser inserido no banco no input qualquer.
Na minha classe já tem as anotações @Id e @GeneratedValue.
.jsp
.dao
??
.controller
??
G
garcia-jj
Controle de concorrência vai para o espaço dessa forma.
Imagina a cena… dois usuários entram na tela ao mesmo tempo. Assim você terá ambos registros com o ID = 10. E quando o segundo for salvar o registro vai sobrescrever o primeiro.
:twisted: :twisted:
Lucas_Cavalcanti
isso é útil pra alguma coisa?
enfim…
faça aqueles selects de max id que o pessoal falou nas outras mensagens, inclua no result via result.include(“proximoId”, maxId); e no seu input coloque value="${proximoId}"