Ola Pessoal!
Tenho as seguintes entidades:
@Entity
@Table(name = "FLEX_SEG_QUANDO")
public class Quando implements IGenericBean {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name = "ID")
private int id;
@Column(name = "SEGUNDA")
private char segunda;
@Column(name = "TERCA")
private char terca;
@Column(name = "QUARTA")
private char quarta;
@Column(name = "QUINTA")
private char quinta;
@Column(name = "SEXTA")
private char sexta;
@Column(name = "SABADO")
private char sabado;
@Column(name = "DOMINGO")
private char domingo;
@JoinColumn(name = "ID_GRUPO", referencedColumnName = "ID")
@ManyToOne
private Grupo idGrupo;
@OneToMany(mappedBy="quandoHorarioComunicacaoId.idQuando", cascade={CascadeType.PERSIST, CascadeType.MERGE}, fetch=FetchType.EAGER) /////// não está trazendo a coleção!!!
private Set<QuandoHorario> quandoHorarioSet;
public Quando() {
}
public Quando(int id) {
this.id = id;
}
public Quando(int id, char segunda, char terca, char quarta, char quinta, char sexta, char sabado, char domingo) {
this.id = id;
this.segunda = segunda;
this.terca = terca;
this.quarta = quarta;
this.quinta = quinta;
this.sexta = sexta;
this.sabado = sabado;
this.domingo = domingo;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public char getSegunda() {
return segunda;
}
public void setSegunda(char segunda) {
this.segunda = segunda;
}
public char getTerca() {
return terca;
}
public void setTerca(char terca) {
this.terca = terca;
}
public char getQuarta() {
return quarta;
}
public void setQuarta(char quarta) {
this.quarta = quarta;
}
public char getQuinta() {
return quinta;
}
public void setQuinta(char quinta) {
this.quinta = quinta;
}
public char getSexta() {
return sexta;
}
public void setSexta(char sexta) {
this.sexta = sexta;
}
public char getSabado() {
return sabado;
}
public void setSabado(char sabado) {
this.sabado = sabado;
}
public char getDomingo() {
return domingo;
}
public void setDomingo(char domingo) {
this.domingo = domingo;
}
public Grupo getIdGrupo() {
return idGrupo;
}
public void setIdGrupo(Grupo idGrupo) {
this.idGrupo = idGrupo;
}
public Set<QuandoHorario> getQuandoHorarioSet() {
return quandoHorarioSet;
}
public void setQuandoHorarioSet(
Set<QuandoHorario> quandoHorarioSet) {
this.quandoHorarioSet = quandoHorarioSet;
}
@Override
public String toString() {
return "br.com.consist.solution.flexsi.bean.Quando[id=" + id + "]";
}
@Override
public void setNullCollection() { //////////////////////Esta função é uma solução para resolver problemas com Lazy
this.setQuandoHorarioSet(null);
this.getIdGrupo().setQuandoSet(null);
this.getIdGrupo().setOqueSet(null);
/*for (QuandoHorario quandoHorario : this.getQuandoHorarioSet()) {
quandoHorario.setNullCollection();
}*/
}
}
@Entity
@Table(name = "FLEX_SEG_QUANDO_HORARIO")
@NamedQueries(@NamedQuery(name = "QuandoHorario.findByGrupo", query = "SELECT q FROM QuandoHorario q WHERE quandoHorarioComunicacaoId.idQuando.idGrupo.id = :id ORDER BY horario_inicio"))
public class QuandoHorario implements IGenericBean {
private static final long serialVersionUID = 1L;
@Column(name = "HORARIO_FIM")
private String horarioFim;
@EmbeddedId
private QuandoHorarioComunicacaoId quandoHorarioComunicacaoId;
public QuandoHorario() {
}
public QuandoHorario(QuandoHorarioComunicacaoId quandoHorarioComunicacaoId) {
this.quandoHorarioComunicacaoId = quandoHorarioComunicacaoId;
}
public QuandoHorario(String horarioInicio, String horarioFim) {
this.horarioFim = horarioFim;
}
public String getHorarioFim() {
return horarioFim;
}
public void setHorarioFim(String horarioFim) {
this.horarioFim = horarioFim;
}
public QuandoHorarioComunicacaoId getQuandoHorarioComunicacaoId() {
return quandoHorarioComunicacaoId;
}
public void setQuandoHorarioComunicacaoId(
QuandoHorarioComunicacaoId quandoHorarioComunicacaoId) {
this.quandoHorarioComunicacaoId = quandoHorarioComunicacaoId;
}
@Override
public String toString() {
return "br.com.consist.solution.flexsi.bean.QuandoHorario[Horario_Inicio=" + horarioFim + "]";
}
@Override
public void setNullCollection() { //////////////////////Esta função é uma solução para resolver problemas com Lazy
this.getQuandoHorarioComunicacaoId().getIdQuando().getIdGrupo().setOqueSet(null);
this.getQuandoHorarioComunicacaoId().getIdQuando().getIdGrupo().setQuandoSet(null);
this.getQuandoHorarioComunicacaoId().getIdQuando().setQuandoHorarioSet(null);
}
@SuppressWarnings("serial")
@Embeddable
public static class QuandoHorarioComunicacaoId implements Serializable {
@Column(name = "HORARIO_INICIO")
private String horarioInicio;
@ManyToOne/*(fetch = FetchType.EAGER)*/
@JoinColumn(name = "ID_QUANDO", referencedColumnName = "ID")
private Quando idQuando;
public QuandoHorarioComunicacaoId() {
}
public QuandoHorarioComunicacaoId(String horarioInicio, Quando idQuando) {
super();
this.horarioInicio = horarioInicio;
this.idQuando = idQuando;
}
public Quando getIdQuando() {
return idQuando;
}
public void setIdQuando(Quando idQuando) {
this.idQuando = idQuando;
}
public QuandoHorarioComunicacaoId(String horarioInicio) {
this.horarioInicio = horarioInicio;
}
public String getHorarioInicio() {
return horarioInicio;
}
public void setHorarioInicio(String horarioInicio) {
this.horarioInicio = horarioInicio;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result
+ ((horarioInicio == null) ? 0 : horarioInicio.hashCode());
result = prime * result
+ ((idQuando == null) ? 0 : idQuando.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
QuandoHorarioComunicacaoId other = (QuandoHorarioComunicacaoId) obj;
if (horarioInicio == null) {
if (other.horarioInicio != null)
return false;
} else if (!horarioInicio.equals(other.horarioInicio))
return false;
if (idQuando == null) {
if (other.idQuando != null)
return false;
} else if (!idQuando.equals(other.idQuando))
return false;
return true;
}
}
}
Estou fazendo uma busca do bean ‘QuandoHorario’, e nele preciso acessar a propriedade ‘Quando’ e apartir dela acessar a sua lista de QuandoHorario que é a ‘quandoHorarioSet’.
Alguém pode me dizer porque não está carregando a coleção ‘quandoHorarioSet’ quando efetuo a busca?
Desde já agradeço