[Resolvido] Erro com JPA - FetchType.EAGER

7 respostas
Mr.style

Pessoal
Não consigo efetuar o Deploy da minha aplicação no Glassfish V3, quando uso duas vezes o mapeamente de entidades com FetchType.EAGER.
O que pode ser isto???

se eu apagar um deles funciona, mas quando coloca mais de um dá erro.

Segue o código abaixo:

@ManyToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
	@JoinTable(name = "idoso_atividade", 
			joinColumns = { @JoinColumn(name = "idoso_matricula") }, 
			inverseJoinColumns = { @JoinColumn(name = "atividade_cod") })
	private List<Atividade> atividades;

	@ManyToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
	@JoinTable(name = "idoso_tipopne", 
			joinColumns = { @JoinColumn(name = "idoso_matricula") }, 
			inverseJoinColumns = { @JoinColumn(name = "TipoPNE_cod") })
	private List<Tipopne> tipopnes;

7 Respostas

drsmachado

Qual erro?

Mr.style

GRAVE: Exception while preparing the app : [PersistenceUnit: cci2] Unable to build EntityManagerFactory
org.hibernate.loader.MultipleBagFetchException: cannot simultaneously fetch multiple bags

O que me parece é que eu tenho que indexar esses mapeamentos com a anotação @IndexColumn.

Mas não sei como.

Mr.style

e pelo que vi esta anotação é do Hibernate, não do JPA.

drsmachado

Aqui http://community.jboss.org/thread/107685?tstart=0 existe uma solução.
Basicamente, inclua a anotação @IndexColumn e indique qual o índice

@IndexColumn(name="id")
Mr.style

Vlw pela dica.
Mas isso eu tinha reportado no e-mail acima.
Mas não tem nada para o próprio JPA não???
Pois e se um dia eu quiser tirar o Hibernate isso vai complicar.
Mas por enquanto vou usando isso mesmo.
Vou colocar como Resolvido.

drsmachado

JPA não provê suporte à múltiplos fetchs Eager.

Mr.style

Então ta explicado.
Muito obrigado.
Essa parte terá que ser com Hibernate mesmo.
hehe

Criado 21 de junho de 2011
Ultima resposta 21 de jun. de 2011
Respostas 7
Participantes 2