Dúvida Hibernate Annotation

Opa :smiley:

Estou refatorando meu projeto e criei um EnderecoBean para usar em tudo que usar endereco. Minha idéia era tipo:

@Entity
@Table(name="cliente", schema="public")
public ClienteBean {
 private EnderecoBean endereco;
//gets sets
}

Ai me surgiu a dúvida como que eu faço para usar annotation nesse EnderecoBean? Dentro do EnderecoBean, eu usei:

public class EnderecoBean implements Endereco {

	@Column(name="endereco")
	private String endereco;
	
	@Column(name="numero")
	private String numero;
	
	@Column(name="complemento")
	private String complemento;
	
	@Column(name="bairro")
	private String bairro;
	
	@Column(name="cidade")
	private String cidade;
	
	@Enumerated(EnumType.STRING)
	@Column(name="estado")
	private Estado estado;
	
	@Column(name="cep")
	private String CEP;
//gets e sets
}

O que eu faço? :smiley:

[]'s

Eu não entendi. O que você quer fazer? Existe uma tabela para essa classe, vai ser persistida? Então é como você fez na outra.

Não…eu tenho 2 beans: Cliente e Endereco.

O campos do bean Endereco do Cliente está dentro da própria tabela CLIENTE. Não tenho uma tabela ENDERECO.

Ai eu pensei em criar o EnderecoBean pra colocar ele na classe ao inves de criar gets e sets pra tudo que for de endereco só que quando eu vou subir o projeto, já sobe com erro:

Pensei que existisse algum tipo de annotation que indicasse que o Objeto Endereco fosse um Objeto e as colunas estivessem dentro dele. Algo assim hehe

Entendeu?

Cara, eu entendi, mas eu não sei se tem como fazer isso, ainda não vi. Se alguém souber…

Qual a dificuldade em ler o que eu respondi para o amigo?

O meu problema não é relacionamento. Em algum momento eu mencionei relacionamento?

O problema era que eu tinha N classes que tinham dados de endereço e eu pensei em concentrar todos esses dados, no EnderecoBean e em cada classe que usava os dados do endereço, eu tiraria todos os dados e colocaria somente o EnderecoBean. A partir dai, eu teria um único objeto com todas informações de endereco, só que cada tabela tem os campos ESTADO, LOGRADOURO, NUMERO e etc. Logo, não é um relacionamento e, se vc tivesse lido a seguinte mensagem que eu enviei, vc teria se poupado de vir falar sobre relacionamento :wink:

Enfim, minha dúvida é se o Hibernate suporta um Bean dentro de outro Bean, sem relacionamento entre eles, EnderecoBean NAO[i][u] é uma entidade…fiz isso simplesmente pra não precisar escrever o mesmo código em uma porrada de classes e como que eu faço para o Hibernate entender que o objeto ENDERECO que está dentro da classe CLIENTEBEAN é um objeto que os campos do relacionamento estão dentro do EnderecoBean.

[]'s

Ele não quer um relacionamento e sim criar duas classes para comportar colunas de uma mesma tabela. As colunas de endereço da tabela Cliente iriam popular atributos da classe Endereco.

Você quer fazer relacionamento???
Se for isso
terá que analisar o tipo de relacionamento
se é um para muito = @OneToMany
se é muitos para um = @ManyToOne
Se é um para um = @OneToOne
Se é muitos para muitos = @ManyToMany

Dai vc vá no guia de referencia do hibernate e ve como funciona cada relacionamento…

@Entity   
@Table(name="cliente", schema="public")   
public ClienteBean {   

@Relacionamento que você quer
private EnderecoBean endereco;   
//gets sets   
}  

Se não for isso refaça a pegunta