Re:[Hibernate] - Mapeamento avançado

3 respostas
von.juliano
Você apenas precisa anotar sua classe Placa com @Embeddable e vai funcionar exatamente dessa forma.
@Entity
class Carro {

  @Id
  int id;

  String marca, modelo, cor;

  // esse é o ponto
  Placa placa;

}

@Embeddable
class Placa {
  String estado, cidade, letras;
  int numeros;
}
Blz? Flw! :thumbup:

3 Respostas

N

Você fazer com que a classe Placa seja @Embeddable, ficaria assim:

class Carro { 
...
@Embedded 
Placa placa; 

} 

@Embeddable 
class Placa{ 
...
}
Spool

Imaginem o cenário abaixo:

Tabela ‘carro’ possuindo alguns atributos (definidos na imagem anexa);

Objetos possuindo uma estrurura diferente como segue:

@Entity
class Carro {

  @Id
  int id;

  String marca, modelo, cor;

  // esse é o ponto
  Placa placa;

}

class Placa {
  String estado, cidade, letras;
  int numeros;
}

O que desejo:
Placa é um atributo de Carro que na tabela esta mapeado como atributos de carro. Porém, os objetos são distintos.
Gostaria de um meio de mapear no hibernate essa situação, onde Placa tenha os atributos da tabela carro, e que quando eu recuperar um objeto Carro, o atributo Placa ja venha com seus respectivos valores.

Obs. Esse é um exemplo hipotético, desconsiderem possiveis inconsistencias.

Grato.

Spool

Obrigado pela ajuda.
Funcionou perfeitamente.

Anexado a isso, utilizei as anotações: @AttributeOverrides e @AttributeOverride que permitem a manipulação dos nomes dos campos, caso sejam diferentes dos da entidade.

Até!

Criado 13 de abril de 2011
Ultima resposta 13 de abr. de 2011
Respostas 3
Participantes 3