Hebert_Coelho 16 de nov. de 2012
Se todos os objetos estiverem ligados a pessoa, você poderia fazer:
#{pessoa.nome}
#{pessoa.carro.cor}
#{pessoa.endereco.rua}
Agora, se forem objetos distintos, aí não tem como não. A não ser que você crie uma classe para agrupar os 3. O.o
raffamz 16 de nov. de 2012
Amigo,
Então, eles estão mapeadas:
Classe Pessoa
@OneToMany ( mappedBy = "pessoa" , targetEntity = Endereco . class )
private Endereco endereco ;
@OneToMany ( mappedBy = "pessoa" , targetEntity = Telefone . class )
private Telefone telefone ;
Classe Endereço
@ManyToOne
private Pessoa pessoa ;
Classe Telefone [/u]
@ManyToOne
private Pessoa pessoa ;
Tentei percorrer da forma que disse:
#{pessoa.telefone.numero}
Mas não puxa nenhum valor!
Hebert_Coelho 17 de nov. de 2012
Primeiro você precisa aprender a utilizar o mapeamento corretamente.
Aqui mostra como utilizar OneToOne, OneToMany e ManyToMany do modo certo: JPA: Mini Livro - Primeiros passos e conceitos detalhados .
raffamz 17 de nov. de 2012
Meu amigo Hebert,
Desculpe se não te fiz entender....escrevi a classe rápida no trabalho só para ter ideia do que eu estava falando, não se atenha ao código para o Hibernate. Mas, como o amigo quer me ajudar, segue o código de forma integral:
Classe Pessoa:
package com.souza.modelo ;
import javax.persistence.Column ;
import javax.persistence.Entity ;
import javax.persistence.GeneratedValue ;
import javax.persistence.Id ;
import javax.persistence.OneToMany ;
@Entity
public class Pessoa {
@Id
@GeneratedValue
@Column ( name = "id_pessoa" )
private Integer id ;
private String nome ;
@OneToMany ( mappedBy = "pessoa" )
//private List<Endereco> end1;
private Endereco endereco ;
@OneToMany ( mappedBy = "pessoa" )
//private List<Telefone> tel1;
private Telefone telefone ;
public Integer getId () {
return id ;
}
public void setId ( Integer id ) {
this . id = id ;
}
public String getNome () {
return nome ;
}
public void setNome ( String nome ) {
this . nome = nome ;
}
public Endereco getEnd1 () {
return endereco ;
}
public void setEnd1 ( Endereco end1 ) {
this . endereco = end1 ;
}
public Telefone getTel1 () {
return telefone ;
}
public void setTel1 ( Telefone tel1 ) {
this . telefone = tel1 ;
}
}
Classe Endereço
package com.souza.modelo ;
import javax.persistence.Column ;
import javax.persistence.Entity ;
import javax.persistence.GeneratedValue ;
import javax.persistence.Id ;
import javax.persistence.JoinColumn ;
import javax.persistence.ManyToOne ;
@Entity
public class Endereco {
@Id
@GeneratedValue
@Column ( name = "id_end" )
private Integer idEnd ;
private String logradouro ;
private String bairro ;
private String complemento ;
private String cep ;
@ManyToOne //(fetch = FetchType.EAGER)
@JoinColumn ( name = "id_pessoa" )
private Pessoa pessoa ;
public Integer getIdEnd () {
return idEnd ;
}
public void setIdEnd ( Integer idEnd ) {
this . idEnd = idEnd ;
}
public String getLogradouro () {
return logradouro ;
}
public void setLogradouro ( String logradouro ) {
this . logradouro = logradouro ;
}
public String getBairro () {
return bairro ;
}
public void setBairro ( String bairro ) {
this . bairro = bairro ;
}
public String getComplemento () {
return complemento ;
}
public void setComplemento ( String complemento ) {
this . complemento = complemento ;
}
public String getCep () {
return cep ;
}
public void setCep ( String cep ) {
this . cep = cep ;
}
public Pessoa getPessoa () {
return pessoa ;
}
public void setPessoa ( Pessoa pessoa ) {
this . pessoa = pessoa ;
}
}
Classe Telefone
package com . souza . modelo ;
import javax.persistence.Column ;
import javax.persistence.Entity ;
import javax.persistence.GeneratedValue ;
import javax.persistence.Id ;
import javax.persistence.JoinColumn ;
import javax.persistence.ManyToOne ;
@Entity
public class Telefone {
@Id
@GeneratedValue
@Column ( name = "id_tel" )
private Integer idTel ;
private Integer ddd ;
private Integer numero ;
@ManyToOne // ( fetch = FetchType . EAGER )
@JoinColumn ( name = "id_pessoa" )
private Pessoa pessoa ;
public Integer getIdTel () {
return idTel ;
}
public void setIdTel ( Integer idTel ) {
this . idTel = idTel ;
}
public Integer getDdd () {
return ddd ;
}
public void setDdd ( Integer ddd ) {
this . ddd = ddd ;
}
public Integer getNumero () {
return numero ;
}
public void setNumero ( Integer numero ) {
this . numero = numero ;
}
public Pessoa getPessoa () {
return pessoa ;
}
public void setPessoa ( Pessoa pessoa ) {
this . pessoa = pessoa ;
}
}
O amigo, tem como me ajudar?
Abraço.