Auto-incremento Hibernate com PrimaryKey Composta  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
leonardocfmg
Debugger

Membro desde: 24/01/2007 10:30:37
Mensagens: 69
Localização: Muriaé - MG
Offline

Como faço para colocar auto-incremento numa chave composta do Hibernate?

O auto-incremento seria no primeiro atributo!



Testei a notação @GenerateValue e não funciona, só funciona com @Id e a mesma não é válida para @Embeddable.

Alguém já implementou, ou possui um técnica de escape?

This message was edited 2 times. Last update was at 09/03/2009 07:14:24

leonardocfmg
Debugger

Membro desde: 24/01/2007 10:30:37
Mensagens: 69
Localização: Muriaé - MG
Offline

Impossível, ninguém nunca implementou?

leonardocfmg wrote:Como faço para colocar auto-incremento numa chave composta do Hibernate?

O auto-incremento seria no primeiro atributo!



Testei a notação @GenerateValue e não funciona, só funciona com @Id e a mesma não é válida para @Embeddable.

Alguém já implementou, ou possui um técnica de escape?
g4j
GUJ Ranger
[Avatar]

Membro desde: 02/05/2007 14:32:03
Mensagens: 817
Localização: Curitiba
Offline

Não faz sentido você ter uma chave composta da maneira que você está tentando fazer. O conceito de chave primária é identificar o registro como sendo único na tabela, e um identity por si só já faz o trabalho.

Tem algum motivo especial pra querer fazer dessa forma?


Gerson Luiz Chagas

SCJP 5.0
SCWCD 5.0

leonardocfmg
Debugger

Membro desde: 24/01/2007 10:30:37
Mensagens: 69
Localização: Muriaé - MG
Offline

O campo idTipoExtintor precisa ser do tipo primary key e auto-increment, até aí normal.

Só que o campo código também precisa ser do tipo primary key, pois não é gerado pelo banco como índice, por ser String é gerado pelo usuário, não podendo existir mais de um código igual.
Marky.Vasconcelos
Moderador
[Avatar]

Membro desde: 11/04/2007 18:18:20
Mensagens: 5932
Localização: São Paulo/SP
Offline

mas se o id já é primario, unico e gerado por que voce tem que ter essa String como primaria também?

Facebook @MarkyHitchhiker +Mark WP: MarkyTech's

Projects:
Android Roadmap - Aprenda Android do inicio (Java é o unico pre-requisito)
Towel ( ObjectTableModel & Swing & Utils )
Tower Defense Game - Java2D [Open-Source] [How-to-play]
EVGD: Programação de jogos (links) Ponto V! - Desenvolvimento de jogos para indies, curiosos e profissionais

DefaultTableModel?! PARE! Não faça isso! Faça melhor!

Dicas: Faça perguntas inteligentes! ; MigLayout ; GridBagLayout (Joke)

Develop games is fantastic, with words you can make worlds!!!

DON'T PANIC!
MarkyHitchhiker's Blog!
[WWW] [MSN]
g4j
GUJ Ranger
[Avatar]

Membro desde: 02/05/2007 14:32:03
Mensagens: 817
Localização: Curitiba
Offline

leonardocfmg wrote:O campo idTipoExtintor precisa ser do tipo primary key e auto-increment, até aí normal.

Só que o campo código também precisa ser do tipo primary key, pois não é gerado pelo banco como índice, por ser String é gerado pelo usuário, não podendo existir mais de um código igual.


Então crie uma constraint UNIQUE (unique index) para essa coluna. Aí se tentar inserir dados duplicados o banco de dados não vai deixar.


Gerson Luiz Chagas

SCJP 5.0
SCWCD 5.0

 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team