Duvida hibernate

Java

15/11/2010


  Ola pessoal!
To com uma duvida com relação ao hibernate.
Tenho uma classe endereço como segue abaixo:
@Embeddablepublic class Endereco{...

e na minha classe cliente tem um atributo do tipo Endereco.
Eu gostaria de saber como eu faço para sobrescrever o nome da coluna dos atributos da classe endereco?ja que a classe endereco vai ser utilizada por varias outras classes.

Obrigado pela atenção!
Ismael Oliveira

Ismael Oliveira

Curtidas 0

Respostas

Davi Costa

Davi Costa

15/11/2010

Ismael vamos por partes,

existem algumas opções para fazer oq vc quer:

*A primeira é deixar na tabela Endereço somente os campos (colunas) que são comuns a todos os outros casos.

A outra opção é usar herança nas tabelas. Nessa segunda opção vc vai ter duas opções:

1 Mantém tudo em uma tabela só (não é muito bom para sua modelagem):

Todas as propriedades de todas as super e subclasses são mapeadas em uma mesma tabela, instancias são distinguidas por uma anotação especial para as colunas, denominada @DiscriminatorColumn.


@Entity @Inheritance(strategy=
InheritanceType.SINGLE_TABLE) @DiscriminatorColumn(   name="tipo",   discriminatorType=
  DiscriminatorType.STRING ) @DiscriminatorValue("Todos") public class Animal{ ... }

@Entity @DiscriminatorValue("Mamifero") public class Mamifero extends Animal{ ... }


2 Mas há a na minha opnião a melhor estratégia de Subclasses interligadas. Essa estratégia cria uma tabela para cada subclasse, as quais são interligadas à superclasse através da chave primária. Um exemplo de código seria o seguinte:

@Entity @Inheritance(strategy=
InheritanceType.JOINED) public class Endereco implements Serializable { ... }
@Entity @PrimaryKeyJoinColumn
(name="ENDERECO_ID") public class EnderecoCliente extends Endereco{ ... }


Desse modo vc vai manter na tabela Endereco somente o que é genérico a todos e nas suas SubClasses o que for específico de cada um.
Espero ter ajudado.
Att Davi

GOSTEI 0
Dyego Carmo

Dyego Carmo

15/11/2010

Opa !

Conseguiu resolver ?
GOSTEI 0
Ismael Oliveira

Ismael Oliveira

15/11/2010

OK!   Vlw pela ajuda!
GOSTEI 0
Dyego Carmo

Dyego Carmo

15/11/2010

Por favor marque como resolvido !
GOSTEI 0
POSTAR