O cenário é o seguinte, tenho um Bean no qual tem duas collections e preciso passar “fetch=FetchType.EAGER” para as duas collections. O Hibernate não suporta dois FetchType.EAGER, que outra solução poderia fazer, já que preciso carregar a coleção dessas duas propriedades em uma mesma página. Valeu…
FetchType: EAGER - Hibernate
7 Respostas
Não suporta?
Posso ter me expressado errado, mais todas as vezes que eu coloco fetchtype.EAGER em duas coleções do mesmo bean, dá um erro…
@OneToMany(cascade = CascadeType.ALL, mappedBy = "segmentoMercado", fetch=FetchType.EAGER)
private Collection<SegmentoMercadoCnae> cnaeCollection;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "segmentoMercado", fetch=FetchType.EAGER))
private Collection<SegmentoMercadoNivelRestricao> nivelRestricaoCollection;
Se eu tiver enganado, que me corrijam por favor…
A principio isso “deveria” funcionar, mas pode ter erro mesmo.
Qual o erro ocorre ?
17:14:31,943 ERROR [[/FacZ]] Exception sending context initialized event to listener instance of class org.jboss.seam.servlet.SeamListener
javax.persistence.PersistenceException: org.hibernate.HibernateException: cannot simultaneously fetch multiple bags
17:14:32,819 ERROR [StandardContext] Error listenerStart
17:14:32,819 ERROR [StandardContext] Context [/FacZ] startup failed due to previous errors
17:14:32,819 INFO [[/FacZ]] Shutting down Log4J
Alguém já passou por isso?
eu já, mas é meio engraçado, porque comigo isso começou a acontecer quando eu tinha umas 3 propriedades com eager
a solução que proponho é utilizar SET em vez de LIST que funciona 
abraço
Ps.: ou utilizar lazy loading
Leozin,
Por Default já não é Lazy loading?
E no caso de usar JSF e DATATABLE, como posso usar o SET? Ela não funciona com a dataTable…
Estou com o mesmo erro
o que poderia ser isto???