Hibernate Herança TablePerClass

Olá…

Estou tentando fazer um mapeamento de herança cujo tipo será TablePerClass.
Minha dúvida é quanto ao atributo ID e o seu respectivo GeneratedValue.

Na classe genérica que quero herdar (classe abstrata) eu tenho um atributo:

@Id
private int id;

E nas classes que herdam dela eu tenho um override do atributo id para determinar o generatedValue:

@Column(insertable=false, updatable=false)
@GeneratedValue
private int id;

Problemas:
1º - Não é legal ter o override do atributo id… sai da OO.
2º - Mesmo colocando o GeneratedValue nas classes concretas que herdam da classe generica não está sendo setado o “Auto-Increment” nas tabelas que representam as classes concretas. (usando mysql)

Pensei na solução do override também porque assim, se estivesse usando um banco que utilizasse sequences, eu teria que determinar qual o nome da sequence em cada classe concreta que herda da genérica que possui o atributo ID.

Se tiverem alguma idéia…
Agradeço…

Olá,

Já tentou colocar isso no GeneratedValue:

@GeneratedValue(strategy=GenerationType.AUTO)

Até.
Paulo.

Tentei anotar o atributo id da classe abstrata com @GeneratedValue(strategy=GenerationType.AUTO) mas não funcionou.
O que eu fiz foi colocar @GeneratedValue(strategy=GenerationType.TABLE). Desta forma o Hibernate criou uma tabela de “sequencias”, só que tá estranho, pois a cada nova transação ele gera um id com + 65535…

Não acho nenhuma documentação de como trabalhar com id sequencial com mapeamentos de herança TablePerClass, complicado!

Amigo, vc conseguiu entender este formato de geração de IDs? Eu passei pela mesma coisa que vc utilizando a herança table per class!

Olá lupontes. Essa postagem é de quase 7 anos atrás. A API do Hibernate deve ter mudado muito e não tenho mais codado em Java a algum tempo. Mas a solução que usei na época foi trabalhar com a anotação @MappedSuperclass. Até escrevi um post no blog que tinha: http://germanodeveloper.wordpress.com/2007/09/11/heranca-simples-com-hibernate/.

Espero que ajude de alguma forma…
Abs.

Obrigado amigo!