I have: 1. A persistent object with an IdClass as key 2. A stateless session bean that gives a method that returns my persistent object using the 'getReference()' method 3. A servlet that invokes the stateless session bean
I'm using J5EE+JBoss 4.2.0.
When I get my object in the servlet, if I try to invoke the getter of any of the 'id' fields, I get an error about the lacking of the session (Hibernate session). I noticed that: 1. If I use the 'find' method, this problem does not occur 2. If I use the EmbeddedId key for my persistent object, this problem does not occur
Is this normal? What's wrong with the use of my persistent object?
Considering that it seems that, outside the session bean, all the lazy fields not yet loaded are unaccessible, it's very risky to return a persistent object from a session bean. Is it true? How should I approach such a situation? Returning a lightweight version of the same persistent object?
I think you may: 1.Consider using find() instead of getReference() or 2.Use getReference() and Consider explicitely fetching all the entity attributes before it is detached as the container might have not loaded them due to lazy loading.