Vraptor3 + hibernate + Mysql( Select Max) [Resolvido]

9 respostas
C

Estou com dificuldades em setar um numero após o ultimo id do banco(mysql)

.jsp

//Como ficaria meu jsp??

Codigo Interno:

.Dao

public List listaTudo() {

return this.session.createCriteria(Loja.class).list();

}

.controller

public void incluir(){

//Como ficaria meu controller???

}

9 Respostas

D

cleison:

.Dao

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

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

.dao

public List listaTudo() {

return this.session.createCriteria(Loja.class).list();

}

.controller

result.include(“lojaList”, lojadao.listaTudo());

K

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

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

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

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}"

C

Vlw pessoal tiraram minha dúvida.

Criado 18 de maio de 2010
Ultima resposta 18 de mai. de 2010
Respostas 9
Participantes 5