Se voce fizer um select usando a função max, e passar como parametro o nome do seu atributo que é uma PK, irá te retornar o maior valor de PK daquela tabela.
Ex:
SELECT MAX( COD ) FROM PRODUTO
Uma outra forma, é fazer um select na tabela HIBERNATE_SEQUENCES. Nesta tabela há dois atributos, uma com o nome da tabela que ele é usado, e outro com o proximo valor que será usado numa PK em determinada tabela.
Mas você pode não ter essa tabela no banco, pois isso depende da estrátégia que voce usa para gerenciar o valor das PKs.
Obs. essa função max pode não ser suportada por todos os bancos de dados. Mas os que não a suporta, devem possuir uma função equivalente.
Espero ter lhe ajudado tiago.
L
luBSPJ
Como vc esta salvando os registros?! essas coisas você configura no próprio mapeamento da entidade, dizendo que o id dela ira ser gerado de forma automática, justamente para não precisar fazer esse tipo de coisa no código.
Com isso é só dar um save (hibernate) ou persist (jpa) que o hibernate se encarrega de fazer isso para vc.
K
kopcheskiPJ
luBS, ele pode estar usando isso apenas como um recurso visual. Dependendo da concorrência que há no sistema dele, não há problema algum.
T
tiagolink_PJ
estou usando mais como recurso visual msm como o kopcheski disse…
estou tabalhando com jpa, para salvar uso o codigo “0”, dae ele gera automaticamente o id
vlw
L
luBSPJ
Agora que vi o “id que sera mostrado na tela”
mas vc naum acha meio estranho isso?! mostrar o id que o registro sera cadastrado na tela?! pode ocorrer erros de concorrencia como o kopcheski disse e também id não seria bem uma informação de negócio que valeria o usuario saber… na real eu sou da ideia que id o usuário não deveria nem saber que existe id’s
mas blz, não sei como é seu sistema e os padrões de tela, ai vc faz o que o kopcheski disse, mesmo assim ainda acho estranho