LazyInitializationException JPA com Spring no JBoss

0 respostas
kartler
Bom dia amigos, tenho as seguintes configurações usando o SpringMVC 3.1.1.RELEASE persistence.xml
<persistence-unit name="appUdJTA" transaction-type="JTA">
       <jta-data-source>java:jboss/datasources/PG</jta-data-source>
spring-context.xml
<jee:jndi-lookup jndi-name="java:jboss/datasources/PG" id="dataSource"  expected-type="javax.sql.DataSource" />
   <jee:jndi-lookup jndi-name="java:comp/env/appUdJTA/EntityManager" id="entityManager" expected-type="javax.persistence.EntityManager" />
   <tx:jta-transaction-manager />
   <tx:annotation-driven />
web.xml
<persistence-context-ref>
        <persistence-context-ref-name>appUdJTA/EntityManager</persistence-context-ref-name>
        <persistence-unit-name>appUdJTA</persistence-unit-name>
    </persistence-context-ref>  

	<filter>
		<filter-name>Spring OpenEntityManagerInViewFilter</filter-name>
		<filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class>
	</filter>
	
	<filter-mapping>
		<filter-name>Spring OpenEntityManagerInViewFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping
[code]
	
dao
[code]
@PersistenceContext
private EntityManager entityManager;

o meu problema está relactionado ao mapeamento um para muitos.

Cliente
@OneToMany(mappendBy="cliente",fetch=FetcyType.LAZY,cascade=CascadeType.ALL)       
private List><Conta> contas = new ArrayList<Conta>();
no controller Cliente eu faço
Conta conta = new Conta();
conta.addValor(new BigDecimal("15.85));
conta.add ....

Cliente cliente = daoCliente.retornarPorId(1)
cliente.getContas().add(conta);
daoCliente.cadastrar(cliente);

sempre ele me retorna um
LazyInitializationException: failed to lazily initialize a collection of role:

a menos que eu mude a anotação para
@OneToMany(mappendBy="cliente",fetch=FetcyType.EAGER,cascade=CascadeType.ALL)

isto está me intrigando, estou usando o servidor de aplicação JBoss e teoricamente
"não era pra lançar um LazyInitializationException", já que estou usando o filtro OpenEntityManagerInViewFilter no web.xml,
porém não estou encontrando de maneira alguma a solução.

se alguém poder me dar uma luz fico agradecido.

Criado 9 de março de 2012
Respostas 0
Participantes 1