Anotações hibernate

2 respostas
R

Ola galera tem uma coisa que não consigo resolver podem me ajudar...

tenho uma entidade assim

CepPK
@Embeddable
public class CepPK {

	private Integer cdCep;

	public CepPK() {

	}

	public CepPK(Integer cep) {
		setCdCep(cep);
	}

	public Integer getCdCep() {
		return cdCep;
	}

	public void setCdCep(Integer cdCep) {
		this.cdCep = cdCep;
	}

}
Cep
@Table(schema="User",name = "tbCep")
public class Cep {

	@EmbeddedId
	private CepPK cdCep;

	
	public Cep() {

	}

	public Cep(CepPK cep) {
		setCdCep(cep);
	}

	public CepPK getCdCep() {
		return cdCep;
	}

	public void setCdCep(CepPK cdCep) {
		this.cdCep = cdCep;
	}

}
EnderecoPK
@Embeddable
public class EnderecoPK {

	private Integer cdEndereco;

	public EnderecoPK() {

	}

	public EnderecoPK(Integer endereco) {
		setCdEndereco(endereco);
	}

	public Integer getCdEndereco() {
		return cdEndereco;
	}

	public void setCdEndereco(Integer cdEndereco) {
		this.cdEndereco = cdEndereco;
	}

}
Endereco
@Table(schema="User",name = "tbEndereco")
public class Endereco {

	@EmbeddedId
	private EnderecoPK cdEndereco;
	@column(name="nmRua")
	private String nmRua;
	
	//não sei o que fazer
	private Cep cep;

	public Endereco() {

	}

	public Endereco(EnderecoPK endereco) {
		setCdEndereco(endereco);
	}

	public EnderecoPK getCdEndereco() {
		return cdEndereco;
	}

	public void setCdEndereco(EnderecoPK cdEndereco) {
		this.cdEndereco = cdEndereco;
	}

	public String getNmRua() {
		return nmRua;
	}

	public void setNmRua(String nmRua) {
		this.nmRua = nmRua;
	}

	public Cep getCep() {
		return cep;
	}

	public void setCep(Cep cep) {
		this.cep = cep;
	}

}

Tenho uma duvida na classe endereco como eu relaciona o ID do objeto CEP na classe endereço com a tabela cdCep no banco de dados ??

2 Respostas

ignacio83

Pesquise por @JoinColumn e @ManyToOne

Lavieri

essse seu mapeamente é no minimo bizarro ^^

pra que um PK para endereço se o seu PK é um INteger ? pq não somente utilizar o proprio id como Integer ??

digo o mesmo sobre Cep, pra que o PK de CEP ?? o.O

veja como ficaria sem esses PK

@Table(schema="User",name = "tbCep")  
public class Cep {  
    @Id
    private Integer cdCep;  
  
      
    public Cep() {  
  
    }  
  
    public Cep(Integer cep) {  
        setCdCep(cep);  
    }  
  
    public Integer getCdCep() {  
        return cdCep;  
    }  
  
    public void setCdCep(Integer cdCep) {  
        this.cdCep = cdCep;  
    }  
  
}
@Table(schema="User",name = "tbEndereco")  
public class Endereco {  
  
    @Id
    private Integer cdEndereco;  
    @column(name="nmRua")  
    private String nmRua;  
      
    @OneToOne //supondo que a relação seja de 1 para 1
    private Cep cep;  
  
    public Endereco() {  
  
    }  
  
    public Endereco(Integer id) {  
        setCdEndereco(id);  
    }  
  
    public Integer getCdEndereco() {  
        return cdEndereco;  
    }  
  
    public void setCdEndereco(Integer cdEndereco) {  
        this.cdEndereco = cdEndereco;  
    }  
  
    public String getNmRua() {  
        return nmRua;  
    }  
  
    public void setNmRua(String nmRua) {  
        this.nmRua = nmRua;  
    }  
  
    public Cep getCep() {  
        return cep;  
    }  
  
    public void setCep(Cep cep) {  
        this.cep = cep;  
    }  
}

e mesmo fazendo com assim , não vejo razão para um tabela exclusiva para o CEP, mas se tem paciencia ^^ o relacionamento seria assim

Criado 11 de maio de 2009
Ultima resposta 11 de mai. de 2009
Respostas 2
Participantes 3