Pessoal gostaria de saber se alguem ja fez um mapeamento (Annotation) da seguinte maneira.
id |codigo |licenca| nmFornecedor |
1 | 1 | 1 | Tal 1 |
2 | 2 | 1 | Tal 2 |
3 | 3 | 1 | Tal 3 |
4 | 4 | 1 | Tal 4 |
5 | 1 | 2 | Tal 5 | <— Note a licenca de uso muda
6 | 2 | 2 | Tal 6 |
7 | 3 | 2 | Tal 7 |
8 | 4 | 2 | Tal 8 |
9 | 5 | 2 | Tal 9 |
Por exemplo o ID sequenciando normalmente mas o CODIGO que o usuario vê sequencia conforme a LICENÇA de uso.
Alguém ja fez algum classe com este conceito? Não queria fazer isto com consultas no banco.
Valeu.
Se você não fizer consultas no banco, como você vai saber em qual código está?
Pois é… to pensando em fazer com um select MAX passando como parametro a licenca.
Mas ainda assim vou pesquisar mais um pouco pq eu tenho quase certeza que isso é possivel através dos indices, só não queria trabalhar com chave composta.
Só lembrando que esse campo licenca é chave estrangeira licencaFK.
[quote=vinnymesquita]Pois é… to pensando em fazer com um select MAX passando como parametro a licenca.
Mas ainda assim vou pesquisar mais um pouco pq eu tenho quase certeza que isso é possivel através dos indices, só não queria trabalhar com chave composta.
Só lembrando que esse campo licenca é chave estrangeira licencaFK.[/quote]Se teu banco vai aguentar um select max a cada registro inserido, beleza. Larga o dedo.
Eu ainda fico com a chave composta. [=
O que importa é funcionar.
Se crescer muito e criar lentidão futuramente melhoro.
Não gosto disso mas as vezes que tentei implementar chave composta só passei raiva e a maioria do pessoal fala que não vale a pena e nem funciona.
Valeu. Abraços!
[quote=vinnymesquita]Se crescer muito e criar lentidão futuramente melhoro.
Não gosto disso mas as vezes que tentei implementar chave composta só passei raiva e a maioria do pessoal fala que não vale a pena e nem funciona.
Valeu. Abraços![/quote]Bem, funcionar funciona. Só não funciona quando não existe um bom conhecimento em JPA e como funciona a chave composta.
Eu já criei diversos tipos mesmo com muito problemas.
Concordo que é complexo, só não concordo com o fato de falarem que não funciona. [=
Se você tiver um índice por licença e código o desempenho vai ficar bom.
A não ser que seu sistema tenha muita concorrência e inserts simultâneos.
Você pode resolver com um comando de SQL:
insert tabela1 (licenca, codigo, fornecedor)
values (var_licenca, (select max(codigo)+1 from tabela1 where licenca=var_licenca), var_fornecdor)
Nunca implementei essa solução com JPA e Hibernate.
Bom dia galera.
Estou voltando a este topico pq dessa vez eu vou fazer esse trem funcionar.
Estou com um novo projeto que quero que funcione desta forma.
Alguem poderia me ajudar?