[jboss-user] [JBoss Seam] - LazyInitializationExceptions are staying

michel.christianen do-not-reply at jboss.com
Thu Sep 13 05:02:08 EDT 2007


I use the following combination of tools:
Seam 1.2 GA
Apache MyFaces
EJB3 
hibernate-commons-annotations 3.3.0.ga
hibernate-validator3.0.0.ga
com.sun.facelets 1.1.12
org.ajax4jsf 1.1.1
org.richfaces 3.0.1
jboss-ejb3-all 3.0.0
hibernate 3.0.0

I want to make use of Seam-managed persistence context with JPA; the problem I get is that lazy loading (FetchType.LAZY) isn't working ; if I use FetchType.EAGER everything works correctly.

I get the following error:
org.hibernate.LazyInitializationException: failed to lazily intialize a collection of role: .....

I followed the tutorial within the SEAM tutorial

I have the following configuration of a project including 2 subprojects, which are packed in seperate jars.

Jars/wars in total ear project:
----------------------------------
1.  JAR ejb project containing the domain objects, service layer (stateless ejb3 beans) and controller layer (statefull ejb3 beans); in this jar the persistence.xml is located in the META-INF directory
2.  JAR commons project containing helper classes (in this jar the entitymanager is injected using 
@PersistenceContext(type=PersistenceContextType.EXTENDED)
private EntityManager entityManager
3.  WAR web project

Overview of configuration files:
------------------------------------

persistence.xml (located in META-INF directory van ejb jar)
==========
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
	version="1.0">
	<persistence-unit name="atinvestorDb">
		org.hibernate.ejb.HibernatePersistence
		<jta-data-source>java:/AtInvestorMySqlDS</jta-data-source>
		
			
			
			

			<!-- These are the default for JBoss EJB3, but not for HEM: -->
			
			
			<!-- Put the EntityManagerFactory into JNDI so we can use it manually in tests -->
			
			<!--property name="jboss.entity.manager.jndi.name" value="java:/atinvestorEntityManager"/-->

		
	</persistence-unit>


components.xml (located in WEB-INF of web WAR)
===========
...
	<core:managed-persistence-context name="entityManager"
		auto-create="true"
		persistence-unit-jndi-name="java:/atinvestorEntityManagerFactory" />
...

faces-config.xml (located in WEB-INF of web WAR)
===========
...
	
		<phase-listener>org.jboss.seam.jsf.TransactionalSeamPhaseListener</phase-listener>
	
...


Can someon help me why I don't get lazy loading to work with this configuration.

- Can it be that the problem is in the fact that the injection of the EntityManager is within another JAR then where the persistency unit residence (and therefore the persistence.xml file is located) ?

Thanks beforehand.

Michel




View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4083822#4083822

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4083822



More information about the jboss-user mailing list