eu tenho uma tabela pessoa q tem os dados acima, bem, todos os atributos da tabela iniciados com “end”
faz parte do grupo de dados referente ao endereco da pessoa, então decidi criar uma classe separada para
representar logicamente esse conjunto de dados.
agora vem a minha dúvida, com ANOTATIONS, como eu faço pra quando for salvar a PESSOA, ele registrar ao
mesmo tempo os dados da classe ENDEREÇO ?!
alguem me dá uma luz como seria esse mapeamento ???[/size]
De acordo com sua modelagem, o relacionamento é uma Pessoa tem um Endereço certo?
Então voce deverá utilizar a annotation @OneToOne na sua Entity.
E para que o Endereço seja salvo junto com o Pessoa na base de uma vez, voce deve preencher o objeto Endereço com os dados provindos da tela, setar dentro do objeto Pessoa, e na hora que for salvar na base, apenas a Pessoa precisa ser salvo, lembre-se de usar o cascade, pois assim o hibernate cuidará do resto.
após muita pequisa descobri como fazer o q eu quero, …
espero servir para outros que se depararem com o mesmo problema que o meu.
o mapeamento entre as duas classes é feito utilizando @Embeddable e @Embedded
@Embeddable : vc define a classe que terá seus dados incluídos em uma Entity, o @Embeddable substitui o @Entity na classe, nesse caso Classe Endereço
@Embedded: vc define no atributo na classe Entity, que aquela classe possui um conjunto de dados que fazem parte de @Entity
exemplo:
Classe Pessoa que possui um atributo Endereco que por sua vez contem um conjunto de atributos que fazem parte de Pessoa
@Entity
@Table(name="pessoa")
public class Pessoax implements java.io.Serializable{
@Id
private Integer id;
@Column
private String nome;
@Embedded //indica que os atributos desse atributo fará parte da tabela pessoa
private Endereco endereco;
... implementação dos gettes e setters
}
Classe Endereco que possui um conjunto de dados que será colocados na tabela Pessoa no DB
@Embeddable
public class Endereco implements Serializable {
@Column
private String cep;
@Column
private String logradouro;
....
}