Re: [Resin-interest] Hibernate lazy loading with Quercus
Seems that the objects no longer have the association with valid session, so either the Session or PersistenceManager should be kept around to fill the objects in upon use. Forcing eager load could also be used I think. Alex. Just noting that this can be done on the configuration level, or you can do it using joins when you query for your objects. I assume the easiest route here is to use a Filter to achieve session/transaction per request. /Mattias Along those same lines, you might also want to check out the Open Session in View pattern, which is mentioned in a number of places in the Hibernate docs: https://www.hibernate.org/43.html Michael Alex wrote (2009-11-24 06:01): Hello, we try to do the following on our php/EJB3 application : • find a given client from its lastname using a stateless bean () • load his orders using the getter [code] $clients = $client_eao-findBySample($sample_client,false,false); var_dump($clients[0]-getOrders()); [/code] Seems that the objects no longer have the association with valid session, so either the Session or PersistenceManager should be kept around to fill the objects in upon use. Forcing eager load could also be used I think. Alex. I assume the easiest route here is to use a Filter to achieve session/transaction per request. /Mattias We get the usual LazyInitializationException : [10:41:03.300] {http--8080-6$31582617} org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.opticneo.entity.client.Client.orders, no session or session was closed If we were using Hessian, before returning the list of clients we would have made a copy of the list (using beanlib) before it is serialized (in ordre to avoid LazyInitializationException) With Quercus, we do not have to do this. Good ! But we face the LazyInitializationException again when trying to access the complex attributes. What is the best way to handle this ? (maybe by taking control over the transaction from the php) Thanks for your help. Regards -- Vincent LAUGIER ___ resin-interest mailing list resin-interest@caucho.com http://maillist.caucho.com/mailman/listinfo/resin-interest ___ resin-interest mailing list resin-interest@caucho.com http://maillist.caucho.com/mailman/listinfo/resin-interest
[Resin-interest] Hibernate lazy loading with Quercus
Title: Vincent LAUGIER Hello, we try to do the following on our php/EJB3 application : find a given client from its lastname using a stateless bean () load his orders using the getter [code] $clients = $client_eao-findBySample($sample_client,false,false); var_dump($clients[0]-getOrders()); [/code] We get the usual LazyInitializationException : [10:41:03.300] {http--8080-6$31582617} org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.opticneo.entity.client.Client.orders, no session or session was closed If we were using Hessian, before returning the list of clients we would have made a copy of the list (using beanlib) before it is serialized (in ordre to avoid LazyInitializationException) With Quercus, we do not have to do this. Good ! But we face the LazyInitializationException again when trying to access the complex attributes. What is the best way to handle this ? (maybe by taking control over the transaction from the php) Thanks for your help. Regards -- Vincent LAUGIER Email : vincent.laug...@helmet.fr Tlphone : + 33 (0)1 75 43 92 52 Fax : + 33 (0)1 79 75 01 12 (monfax.com) ___ resin-interest mailing list resin-interest@caucho.com http://maillist.caucho.com/mailman/listinfo/resin-interest
Re: [Resin-interest] Hibernate lazy loading with Quercus
Hello, we try to do the following on our php/EJB3 application : • find a given client from its lastname using a stateless bean () • load his orders using the getter [code] $clients = $client_eao-findBySample($sample_client,false,false); var_dump($clients[0]-getOrders()); [/code] Seems that the objects no longer have the association with valid session, so either the Session or PersistenceManager should be kept around to fill the objects in upon use. Forcing eager load could also be used I think. Alex. We get the usual LazyInitializationException : [10:41:03.300] {http--8080-6$31582617} org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.opticneo.entity.client.Client.orders, no session or session was closed If we were using Hessian, before returning the list of clients we would have made a copy of the list (using beanlib) before it is serialized (in ordre to avoid LazyInitializationException) With Quercus, we do not have to do this. Good ! But we face the LazyInitializationException again when trying to access the complex attributes. What is the best way to handle this ? (maybe by taking control over the transaction from the php) Thanks for your help. Regards -- Vincent LAUGIER Email : vincent.laug...@helmet.fr Téléphone : + 33 (0)1 75 43 92 52 Fax : + 33 (0)1 79 75 01 12 (monfax.com) objectwiz-logo_pgday_PREZ.png ___ resin-interest mailing list resin-interest@caucho.com http://maillist.caucho.com/mailman/listinfo/resin-interest ___ resin-interest mailing list resin-interest@caucho.com http://maillist.caucho.com/mailman/listinfo/resin-interest
Re: [Resin-interest] Hibernate lazy loading with Quercus
Alex wrote (2009-11-24 06:01): Hello, we try to do the following on our php/EJB3 application : • find a given client from its lastname using a stateless bean () • load his orders using the getter [code] $clients = $client_eao-findBySample($sample_client,false,false); var_dump($clients[0]-getOrders()); [/code] Seems that the objects no longer have the association with valid session, so either the Session or PersistenceManager should be kept around to fill the objects in upon use. Forcing eager load could also be used I think. Alex. I assume the easiest route here is to use a Filter to achieve session/transaction per request. /Mattias We get the usual LazyInitializationException : [10:41:03.300] {http--8080-6$31582617} org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.opticneo.entity.client.Client.orders, no session or session was closed If we were using Hessian, before returning the list of clients we would have made a copy of the list (using beanlib) before it is serialized (in ordre to avoid LazyInitializationException) With Quercus, we do not have to do this. Good ! But we face the LazyInitializationException again when trying to access the complex attributes. What is the best way to handle this ? (maybe by taking control over the transaction from the php) Thanks for your help. Regards -- Vincent LAUGIER ___ resin-interest mailing list resin-interest@caucho.com http://maillist.caucho.com/mailman/listinfo/resin-interest