I have a simple Seam app that displays the list of categories as a datatable 
and selecting a category from that. All works fine till that point. In the next 
request(i.e. after a category has been selected), Im trying to get the books 
that are associated with the category . The relation between Category to Books 
is OneToMany.
When trying to access the books for that category, I get the following LIE


  | Caused by: org.hibernate.LazyInitializationException: failed to lazily 
initialize a collection of role: com.rajasaur.bookxchange.model.Category.books, 
no session or session was closed
  |         at 
org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:358)
  |         at 
org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:350)
  |         at 
org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:343)
  |         at 
org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:86)
  |         at 
org.hibernate.collection.PersistentSet.iterator(PersistentSet.java:138)
  |         at 
com.rajasaur.bookxchange.action.CategoryActionsBean.updateCategory(CategoryActionsBean.java:112)
  |         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  |         at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  |         at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  |         at java.lang.reflect.Method.invoke(Method.java:585)
  |         at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112)
  |         at 
org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166)
  |         at 
org.jboss.seam.interceptors.SeamInvocationContext.proceed(SeamInvocationContext.java:56)
  |         at 
org.jboss.seam.interceptors.ValidationInterceptor.validateTargetComponent(ValidationInterceptor.java:64)
  |         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  | 

CategoryActionsBean(Which is a Session Scoped Stateful bean) contains the 
following mappings.
    @In(create=true)
  |     private EntityManager em;
  |     @In(required=false) @Valid
  |     private Category category;
  |     @DataModel
  |     private List<Category> categories;
  |     @DataModelSelection(value="categories") @Out(required=false, 
scope=ScopeType.CONVERSATION)
  |     private Category selectedCategory;
  | 
The Category Entity Bean also has 2 roles, category and selectedCategory, both 
of them in the Conversation Scope. Im totally at a loss as to why this is 
happening. 
According to the forums, if a component is in Conversational Scope and if we 
use the Seam managed PC, it should work , but I cant get this to work. If I put 
in a em.refresh before accessing the collection ,  then it works fine, but I 
thought Seam should be able to keep the collections intact from the previous 
request (as per Section 9.4 in the Seam Docs). 

If someone can point me to some docs or the problem, greatly appreciate it. Ive 
been debugging this for almost a few hours now, but cant get anywhere.

Thanks
Raja


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

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3969043
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to