Help MYSQL + Hibernate

4 respostas
danilopelegrino

Boa noite galera tudo certo?

Desculpe pela minha igorancia, mais na opiniao de voces, qual a melhor forma de simular um sequence no mysql, ja que o mesmo não trabalha com sequence e sim auto-incremento?

Vou explicar melhor oque preciso, ai fica mais claro.

Tenho um jsp, onde vou ter que gerar um numero de O.S a cada nova atendimento…Este numero tem que ser mostrado assim que o usuario clicar em “novo atendimento”.

Pois bem, alem de ter que mostrar este numero ja para o usuario sem antes mesmo de persistir, esse numero tem uma certa regra, onde o mesmo tem que ser o ano atual + uma sequencia de numeros(ex 201099999).

Pensei em pegar sempre o ultimo id do ultimo registro, porem se muitos usuarios acessarem ao mesmo tempo, vai dar merda certo?

Qual a melhor maneira de se fazer isso?

Eu tenho como gerar uma “sequence” generica e informar para o hibernate utilizar ela e tbm incrementar ela??

Alem disso, tenho como obter ela antes da perssistencia para mostrar no jsp?

Por favor galera, me ajudemmmm eu imploro kkkkkkkk

abraço galera e valeu pela força des de ja…Fuiiiiiiiiiiii

4 Respostas

rogelgarcia

Se performance nao for um problema

Cria uma tabela com um campo…

E usa um método synchronized para recuperara e incrementar o valor desse campo

Assim o sequencial estará persistido e nao terá problema de vários acessos simultaneos

kemperacc

Seguinte, esse campo da sua tabela, que contem o numero da OS, faz o seguinte…

SuaClase.requisitaAberturaOS()

Isso abriria ja uma os na tabela e gravaria ela no banco de dados, e mostraria para o usuario o registro ja salvo, mas com os dados em branco

depois

(quando o usuario for salvar)

SuaClasse.confirimaAberturaOS(SuaOS)

Isso ativaria uma flag na tabela, algo como aberturaConfirmada = 1

alexcomput

Bom se eu entendi…acredito que a maneira mais simple de fazer isso é buscando a data e a hora do computador e concatenando com esse outros numero que vc mesmo disse que sao obrigatorios…mais bem…no banco de dados vc tiraria…o auto incremento… acho que isso resolve.valew.

danilopelegrino

Entendi galera, vou testar todas as opções aqui e posto a que melhor se enquadrar.

Valeu pela ajuda ae…abraço

Criado 23 de março de 2010
Ultima resposta 23 de mar. de 2010
Respostas 4
Participantes 4