SequenceGenerator Customizado

4 respostas
amartuchi

Preciso de um gerador de chave que use um prefixo “SL”, os dois últimos dígitos do ano atual “11” e um numerador seqüencial com 6 dígitos “000001”.
O tipo do campo deve ser String.

Ex:
SL11000001
SL11000002
SL11000003

SL11000010
SL1100000N…

Busquei vários exemplos de SequenceGenerator customizado, mas não encontrei nada que atendesse a minha necessidade.

Só para explicar melhor…
Esse prefixo SL quer dizer solicitação, para pedidos, por exemplo, eu utilizaria PD.

Desde já obrigado.

4 Respostas

Rodrigo_Sasaki

Você ta pensando em usar essa string como chave primária de uma tabela na base de dados?

P

Sequence é para numéricos…

Se teu cliente quer uma sequencia dessas usa um campo a mais ai na tabela e vai ter aquele trabalho de manter a sequencia deles…

Esse prefixo SL quer dizer solicitação, para pedidos, por exemplo, eu utilizaria PD. ==> usando tipo de pedido nem precisava disso…

viniciusfaleiro

Nada impede vc ter a sequence no banco e ter um tipo associado a esse registro dando a vc a possibilidade de exibir esse identificador para o cliente. Ex: seu registro tem id =1200032 e tipo = PD. Na hora de exibir vc concatena como PD1200032. Vc pode facilmente fazer um sequence desses no java… eh bem simples. Mas se vc for usar como chave de uma tabela eu nao aconselharia pelo fato de ser mais custoso para o banco.

amartuchi

Sim, é o ID…
Sei… Foge a qualquer padrão O.O.

Esse é meu problema a tabela já existe, não posso modificar a estrutura.
Tem que ser dessa forma, pois isso é um padrão do sistema que a empresa utiliza…

É um ERP italiano do tempo da minha vó…
Roda em AS400 da IBM, e o banco é feito via DDS (Data Description Specifications).
O banco é o DB2/400.

Hoje, temos um programa em RPG (http://en.wikipedia.org/wiki/IBM_RPG) que gera esse numero…
Para resgatar esse número tenho que fazer uma chamada via Java a um programa CL e este chama o tal RPG…

Caso alguém conheça do assunto…
Obrigado.

Criado 16 de maio de 2011
Ultima resposta 16 de mai. de 2011
Respostas 4
Participantes 4