Pelo que li o FetchType.Lazy não deveria trazer todos os filhos, porém esta fazendo isso!!O que há de errado!!
import java.util.ArrayList;
import java.util.List;
import javax.persistence.*;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
@Entity
@Table(name="pessoa")
public class Pessoa {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@Column(name="nome")
private String nome;
@Cascade(CascadeType.ALL)
@OneToMany(mappedBy="pessoa",fetch=FetchType.LAZY)
private List<Endereco> enderecos = new ArrayList<Endereco>();
public void setNome(String nome) {
this.nome = nome;
}
public String getNome() {
return nome;
}
public void setEnderecos(List<Endereco> enderecos) {
this.enderecos = enderecos;
}
public void addEnderecos(Endereco endereco){
this.enderecos.add(endereco);
}
public List<Endereco> getEnderecos() {
return enderecos;
}
public void setId(int id) {
this.id = id;
}
public int getId() {
return id;
}
}
/////////////////////
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
@Entity
@Table(name="endereco")
public class Endereco {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@Column(name="rua")
private String rua;
@Column(name="pais")
private String pais;
@ManyToOne(fetch=FetchType.LAZY)
@Cascade(CascadeType.SAVE_UPDATE)
@JoinColumn(name="fk_cidade")
private Cidade cidade;
@ManyToOne(fetch=FetchType.EAGER)
@Cascade(CascadeType.SAVE_UPDATE)
@JoinColumn(name="fk_pessoa")
private Pessoa pessoa;
public void setRua(String rua) {
this.rua = rua;
}
public String getRua() {
return rua;
}
public void setPais(String pais) {
this.pais = pais;
}
public String getPais() {
return pais;
}
public void setCidade(Cidade cidade) {
this.cidade = cidade;
}
public Cidade getCidade() {
return cidade;
}
public void setId(int id) {
this.id = id;
}
public int getId() {
return id;
}
public void setPessoa(Pessoa pessoa) {
this.pessoa = pessoa;
}
public Pessoa getPessoa() {
return pessoa;
}
}
