Lazy Loading per ResultMap

2010-06-17 Thread moffit

Hi all,

  Currently, lazy loading is enabled/disabled globally for all results.  It
would be very useful (for me) to specify the load per association or
collection within the result-map itself.  Is there any way to do this via
the plugin architecture?  Does anyone have any thoughts with regard to this?

Thanks,

Mike
-- 
View this message in context: 
http://old.nabble.com/Lazy-Loading-per-ResultMap-tp28916943p28916943.html
Sent from the iBATIS - User - Java mailing list archive at Nabble.com.


-
To unsubscribe, e-mail: user-java-unsubscr...@ibatis.apache.org
For additional commands, e-mail: user-java-h...@ibatis.apache.org



Re: Ibatis 3 - Lazy Loading and Serializable Sessions

2010-05-04 Thread moffit

Hi Clinton,

  The exception (thrown by Tomcat) is:

07:26:05,621 ERROR apache.catalina.session.ManagerBase - Exception loading
sessions from persistent storage
java.io.WriteAbortedException: writing aborted;
java.io.NotSerializableException:
org.apache.ibatis.executor.loader.ResultLoaderMap$LoadPair
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1333)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at java.util.HashMap.readObject(HashMap.java:1030)
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:597)
at 
java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at 
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at 
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at 
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at 
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at
org.apache.catalina.session.StandardSession.readObject(StandardSession.java:1470)
at
org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:972)
at
org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:394)
at
org.apache.catalina.session.StandardManager.load(StandardManager.java:321)
at
org.apache.catalina.session.StandardManager.start(StandardManager.java:637)
at
org.apache.catalina.core.StandardContext.start(StandardContext.java:4476)
at
org.apache.catalina.core.StandardContext.reload(StandardContext.java:3228)
at
org.apache.catalina.manager.ManagerServlet.reload(ManagerServlet.java:918)
at
org.apache.catalina.manager.HTMLManagerServlet.reload(HTMLManagerServlet.java:544)
at
org.apache.catalina.manager.HTMLManagerServlet.doGet(HTMLManagerServlet.java:121)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at 
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)

I am using the ibatis-core-3.0.jar version of the library.

Thanks,

Mike


Clinton Begin wrote:
 
 iBATIS 3 enhanced objects should be serializable.  Can you post the
 exception you're getting?
 
 Clinton
 
 On Mon, May 3, 2010 at 7:25 PM, moffit mof...@gmail.com wrote:

 Hi,

  I noticed that this question was asked

Ibatis 3 - Lazy Loading and Serializable Sessions

2010-05-03 Thread moffit

Hi,

  I noticed that this question was asked a few years ago with Ibatis 2.X
without any resolution.

  Basically, lazy loaded objects are enhanced with byte-code generation. 
The enhanced object/proxy is not serializable even though the source object
is.  This obviously plays havoc with web applications if the source object
is stored in the session.  A very simple and probably often used scenario
would be a user object that contains a contact object which contains a
location, etc.., stored in the session after authentication.  Lazy loading
can be very useful in situations like this, but the session cannot be
serialized to disk by the container (e.g. Tomcat).  This negates clustering,
for one, thing, and is also a pain for development, as the context is often
reloaded due to code changes.  Without the serialization support, the
developer must plow through the entire log on and resulting work-flow to get
to the required web page again.

Are there any technical or architectural issues around making the enhanced
object serializable?  Has anyone else run into this problem?  Right now,
I've disabled lazy loading to allow the session to be serialized.

Thanks,

Mike
-- 
View this message in context: 
http://old.nabble.com/Ibatis-3---Lazy-Loading-and-Serializable-Sessions-tp28442042p28442042.html
Sent from the iBATIS - User - Java mailing list archive at Nabble.com.


-
To unsubscribe, e-mail: user-java-unsubscr...@ibatis.apache.org
For additional commands, e-mail: user-java-h...@ibatis.apache.org