Dúvida anotação Hibernate

6 respostas
tati.mat.moreira

Oi colegas,

estou em dúvida em qual anotação colocar na linha:
private Endereco endereco;

Cada PessoaFisica poderá ter UM endereço.

PessoaFisica.java
@Entity
@Table(name="PESSOA_FISICA")
public class PessoaFisica implements Serializable{
	
	private static final long serialVersionUID = 2528571153269075116L;

	@Id  
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	private Long id;  
	
	@Column(name="NOME", nullable=false)
	private String nome;
	 
	@Column(name="CPF", nullable=false)
	private String cpf;
	 
	@Column(name="RG", nullable=false)
	private String rg;
	
	@Column(name="EMAIL", nullable=false)
	protected String email;
	 
	@Column(name="SITE", nullable=false)
	protected String site;
	
	@Column(name="SENHA", nullable=false)
	protected String senha;
	
	//FIXME
	private Endereco endereco;
...
Endereco.java
@Entity
@Table(name="ENDERECO")
public class Endereco implements Serializable{
    
	private static final long serialVersionUID = -6235102150102321390L;

	@Id  
	@GeneratedValue(strategy=GenerationType.IDENTITY)
    private Long id;
    
	@Column(name="LOGRADOURO", nullable=false)
    private String logradouro;
    
	@Column(name="NUMERO", nullable=false)
    private String numero;
    
	@Column(name="COMPLEMENTO", nullable=false)
    private String complemento;

	@Column(name="BAIRRO", nullable=false)
    private String bairro;
    
	@Column(name="CIDADE", nullable=false)
    private String cidade;
    
	@Column(name="UF", nullable=false)
    private String uf;

	@Column(name="CEP", nullable=false)
    private String cep;
...

Bjosss...

6 Respostas

Rafael_Carneiro

@OneToOne

Adriel

Olá tati.mat.moreira!

@OneToOne private Endereco endereco;
Os relacionamento um-para-um são anotados com @OneToOne. blz?

kartler

Um para um

ou um para muitos

tati.mat.moreira

OK,

só mais uma coisa… é só isso ou preciso colocar algo do tipo @JoinColumn e tals?

Bjoss…

Adriel

Esse @JoinColumn não é obrigatorio, ele serve apenas para setar que coluna será usada para fazer o join. exemplo

Recomendo essa apostila.
ftp://raphaela:[email removido]/UnP2007/Hibernate_Anotacoes.pdf
Nela é abordado os relacionamento entre classe com anotação. Muito boa mesmo.

tati.mat.moreira

Obrigada!

No fim das contas ficou assim:
@Entity
@Table(name="PESSOA_FISICA")
public class PessoaFisica implements Serializable{
	
	private static final long serialVersionUID = 2528571153269075116L;

	@Id  
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(name="PESSOA_FISICA_ID")
	private Long id;  
	
	@OneToOne(cascade = CascadeType.ALL)  
	@JoinColumn(name="ENDERECO_ID")
	private Endereco endereco;
@Entity
@Table(name="ENDERECO")
public class Endereco implements Serializable{
    
	private static final long serialVersionUID = -6235102150102321390L;

	@Id  
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(name="ENDERECO_ID")
    private Long id;
    
	@OneToOne
	@JoinColumn(name="PESSOA_FISICA_ID")
	private PessoaFisica pessoaFisica;

Alguma sugestão ou deixo assim mesmo?

Criado 9 de janeiro de 2009
Ultima resposta 9 de jan. de 2009
Respostas 6
Participantes 4