Fórum Duvida hibernate #390511

15/11/2010

0


  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

Responder

Posts

16/11/2010

Davi Costa

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

Responder

Gostei + 0

18/11/2010

Dyego Carmo

Opa !

Conseguiu resolver ?
Responder

Gostei + 0

19/11/2010

Ismael Oliveira

OK!   Vlw pela ajuda!
Responder

Gostei + 0

10/12/2010

Dyego Carmo

Por favor marque como resolvido !
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar