Return-Path: Delivered-To: apmail-ibatis-user-java-archive@www.apache.org Received: (qmail 53734 invoked from network); 11 Apr 2007 03:57:39 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 11 Apr 2007 03:57:39 -0000 Received: (qmail 21604 invoked by uid 500); 11 Apr 2007 03:57:45 -0000 Delivered-To: apmail-ibatis-user-java-archive@ibatis.apache.org Received: (qmail 21000 invoked by uid 500); 11 Apr 2007 03:57:44 -0000 Mailing-List: contact user-java-help@ibatis.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user-java@ibatis.apache.org Delivered-To: mailing list user-java@ibatis.apache.org Received: (qmail 20989 invoked by uid 99); 11 Apr 2007 03:57:43 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 10 Apr 2007 20:57:43 -0700 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: pass (herse.apache.org: local policy) Received: from [202.0.15.8] (HELO perexc64.doir.wa.gov.au) (202.0.15.8) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 10 Apr 2007 20:57:36 -0700 Received: from perexc14.internal.dom ([172.20.51.14]) by perexc64.doir.wa.gov.au with InterScan Message Security Suite; Wed, 11 Apr 2007 11:57:12 +0800 X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01C77BED.7BE4C876" Subject: RE: Lazy load and serializable Date: Wed, 11 Apr 2007 11:57:11 +0800 Message-ID: X-MS-Has-Attach: yes X-MS-TNEF-Correlator: Thread-Topic: Lazy load and serializable Thread-Index: Acd7eiO0wD9jHwaWQEaXh5ItjC3eigAcgJFg From: "MCCORMICK, Paul" To: X-Virus-Checked: Checked by ClamAV on apache.org This is a multi-part message in MIME format. ------_=_NextPart_001_01C77BED.7BE4C876 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable You'll need to modify the ibatis source code. If your not using cglib then you only need to make the class LazyResultLoader serializable. This is done in 3 easy steps. 1) Add implements Serializable to the LazyResultLoader class definition :) 2) Make the private field ExtendedSqlMapClient client transient. 3) Insert your own code to set the ExtendedSqlMapClient client field on deSerialization. I've attached my version of LazyResultLoader.java Hope this helps, Paul -----Original Message----- From: Daigo Kobayashi [mailto:daigo@abs-network.com]=0D Sent: Tuesday, 10 April 2007 10:11 PM To: user-java@ibatis.apache.org Subject: Lazy load and serializable I'm using 1:N mapping with lazy load option. iBatis create not serializable object, so it can't store in some conditions. (I'm using Spring Web Flow and iBatis, serializable object is required by Spring Web Flow.) Is there any good way to resolve this? "DISCLAIMER: This email, including any attachments, is intended only for= use by the addressee(s) and may contain confidential and/or personal= information and may also be the subject of legal privilege. If you are not= the intended recipient, you must not disclose or use the information= contained in it. In this case, please let me know by return email, delete= the message permanently from your system and destroy any copies.=0D Before you take any action based upon advice and/or information contained= in this email you should carefully consider the advice and information and= consider obtaining relevant independent advice. ------_=_NextPart_001_01C77BED.7BE4C876 Content-Type: application/octet-stream; name="LazyResultLoader.java" Content-Transfer-Encoding: base64 Content-Description: LazyResultLoader.java Content-Disposition: attachment; filename="LazyResultLoader.java" LyogVGhpcyBpcyBhIHRlbXAgZml4IHRvIGFsbG93IGFuIGliYXRpcyBsYXp5IGxvYWRlZCBvYmpl Y3QgdG8gYmUgU2VyYWxpemVkLiAgVGhpcyBpcyBuZWVkZWQNCiAqIHdoZW4gYSBQcm9maWxlIGlz IHBhcnQgb2YgYSBzZWFyY2ggY3JpdGVyaWEgdGhhdCBpcyBwYXNzZWQgdG8gYSBtZXNzYWdlIGJl YW4uDQogKiBGb3IgdXNlIHdpdGggZU1pdHMgSSBtYWRlIHRoZSBmb2xsb3dpbmcgY2hhbmdlcw0K ICogMSkgTWFkZSBTZXJpYWxpemFibGUuDQogKiAyKSBFeHRlbmRlZFNxbE1hcENsaWVudCBmaWVs ZCBpcyBub3QgdHJhbnNpZW50Lg0KICogMykgQWRkZWQgYSBnZXR0ZXIgYXJvdW5kIHRoZSBFeHRl bmRlZFNxbE1hcENsaWVudCBmaWVsZC4NCiAqIA0KICovDQpwYWNrYWdlIGNvbS5pYmF0aXMuc3Fs bWFwLmVuZ2luZS5tYXBwaW5nLnJlc3VsdC5sb2FkZXI7DQoNCmltcG9ydCBlbWl0cy5hcHBsaWNh dGlvbi5kYXRhLnV0aWwuaWJhdGlzLkFwcFNxbENvbmZpZzsNCg0KaW1wb3J0IGNvbS5pYmF0aXMu Y29tbW9uLmJlYW5zLkNsYXNzSW5mbzsNCg0KaW1wb3J0IGNvbS5pYmF0aXMuc3FsbWFwLmVuZ2lu ZS5pbXBsLkV4dGVuZGVkU3FsTWFwQ2xpZW50Ow0KDQppbXBvcnQgamF2YS5pby5TZXJpYWxpemFi bGU7DQppbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuSW52b2NhdGlvbkhhbmRsZXI7DQppbXBvcnQg amF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kOw0KaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0LlByb3h5 Ow0KaW1wb3J0IGphdmEuc3FsLlNRTEV4Y2VwdGlvbjsNCmltcG9ydCBqYXZhLnV0aWwuQ29sbGVj dGlvbjsNCmltcG9ydCBqYXZhLnV0aWwuTGlzdDsNCg0KLyoqDQogKiBDbGFzcyB0byBsYXppbHkg bG9hZCByZXN1bHRzIGludG8gb2JqZWN0cw0KICovDQpwdWJsaWMgY2xhc3MgTGF6eVJlc3VsdExv YWRlciBpbXBsZW1lbnRzIEludm9jYXRpb25IYW5kbGVyLCBTZXJpYWxpemFibGUgew0KDQogIHBy aXZhdGUgc3RhdGljIGZpbmFsIENsYXNzW10gTElTVF9JTlRFUkZBQ0VTID0gbmV3IENsYXNzW117 TGlzdC5jbGFzc307DQoNCiAgIA0KICBwcml2YXRlIHRyYW5zaWVudCBFeHRlbmRlZFNxbE1hcENs aWVudCBjbGllbnQ7IC8vIChQTSkgQ2FuJ3Qgc2VyaWFsaXplIGEgamRiYyBjb25uZWN0aW9uLg0K ICAvKiANCiAgICogKFBNKSBBZGRlZCBhIGdldHRlciBtZXRob2QgYXJvdW5kIHRoZSBTcWxNYXBD bGllbnQgZmllbGQuICBUaGlzIGlzIGZvciB3aGVuDQogICAqIGFueSBsYXp5IGxvYWRlZCBvYmpl Y3QgaXMgYmVpbmcgc2VyaWFsaXplZC4NCiAgICovDQogIHByb3RlY3RlZCBFeHRlbmRlZFNxbE1h cENsaWVudCBnZXRDbGllbnQoKSB7DQogICAgICBpZiAoIGNsaWVudCA9PSBudWxsKSB7DQogICAg ICAgICAgY2xpZW50ID0gKEV4dGVuZGVkU3FsTWFwQ2xpZW50KUFwcFNxbENvbmZpZy5nZXRTcWxN YXBJbnN0YW5jZSgpOw0KICAgICAgfQ0KICAgICAgcmV0dXJuIGNsaWVudDsNCiAgfQ0KICANCiAg DQogIHByb3RlY3RlZCBTdHJpbmcgc3RhdGVtZW50TmFtZTsNCiAgcHJvdGVjdGVkIE9iamVjdCBw YXJhbWV0ZXJPYmplY3Q7DQogIHByb3RlY3RlZCBDbGFzcyB0YXJnZXRUeXBlOw0KDQogIHByb3Rl Y3RlZCBib29sZWFuIGxvYWRlZDsNCiAgcHJvdGVjdGVkIE9iamVjdCByZXN1bHRPYmplY3Q7DQog IA0KICANCg0KDQogIC8qKg0KICAgKiBDb25zdHJ1Y3RvciBmb3IgYSBsYXp5IGxpc3QgbG9hZGVy DQogICAqDQogICAqIEBwYXJhbSBjbGllbnQgLSB0aGUgY2xpZW50IHRoYXQgaXMgY3JlYXRpbmcg dGhlIGxhenkgbGlzdA0KICAgKiBAcGFyYW0gc3RhdGVtZW50TmFtZSAtIHRoZSBzdGF0ZW1lbnQg dG8gYmUgdXNlZCB0byBidWlsZCB0aGUgbGlzdA0KICAgKiBAcGFyYW0gcGFyYW1ldGVyT2JqZWN0 IC0gdGhlIHBhcmFtZXRlciBvYmplY3QgdG8gYmUgdXNlZCB0byBidWlsZCB0aGUgbGlzdA0KICAg KiBAcGFyYW0gdGFyZ2V0VHlwZSAtIHRoZSB0eXBlIHdlIGFyZSBwdXR0aW5nIGRhdGEgaW50bw0K ICAgKi8NCiAgcHVibGljIExhenlSZXN1bHRMb2FkZXIoRXh0ZW5kZWRTcWxNYXBDbGllbnQgY2xp ZW50LCBTdHJpbmcgc3RhdGVtZW50TmFtZSwgT2JqZWN0IHBhcmFtZXRlck9iamVjdCwgQ2xhc3Mg dGFyZ2V0VHlwZSkgew0KICAgIHRoaXMuY2xpZW50ID0gY2xpZW50Ow0KICAgIHRoaXMuc3RhdGVt ZW50TmFtZSA9IHN0YXRlbWVudE5hbWU7DQogICAgdGhpcy5wYXJhbWV0ZXJPYmplY3QgPSBwYXJh bWV0ZXJPYmplY3Q7DQogICAgdGhpcy50YXJnZXRUeXBlID0gdGFyZ2V0VHlwZTsNCiAgfQ0KDQog IC8qKg0KICAgKiBMb2FkcyB0aGUgcmVzdWx0DQogICAqDQogICAqIEByZXR1cm4gdGhlIHJlc3Vs dHMgLSBhIGxpc3Qgb3Igb2JqZWN0DQogICAqIA0KICAgKiBAdGhyb3dzIFNRTEV4Y2VwdGlvbiBp ZiB0aGVyZSBpcyBhIHByb2JsZW0NCiAgICovDQogIHB1YmxpYyBPYmplY3QgbG9hZFJlc3VsdCgp IHRocm93cyBTUUxFeGNlcHRpb24gew0KICAgIGlmIChDb2xsZWN0aW9uLmNsYXNzLmlzQXNzaWdu YWJsZUZyb20odGFyZ2V0VHlwZSkpIHsNCiAgICAgIEludm9jYXRpb25IYW5kbGVyIGhhbmRsZXIg PSBuZXcgTGF6eVJlc3VsdExvYWRlcihnZXRDbGllbnQoKSwgc3RhdGVtZW50TmFtZSwgcGFyYW1l dGVyT2JqZWN0LCB0YXJnZXRUeXBlKTsNCiAgICAgIENsYXNzTG9hZGVyIGNsID0gdGFyZ2V0VHlw ZS5nZXRDbGFzc0xvYWRlcigpOw0KICAgICAgcmV0dXJuIFByb3h5Lm5ld1Byb3h5SW5zdGFuY2Uo Y2wsIExJU1RfSU5URVJGQUNFUywgaGFuZGxlcik7DQogICAgfSBlbHNlIHsNCiAgICAgIHJldHVy biBSZXN1bHRMb2FkZXIuZ2V0UmVzdWx0KGdldENsaWVudCgpLCBzdGF0ZW1lbnROYW1lLCBwYXJh bWV0ZXJPYmplY3QsIHRhcmdldFR5cGUpOw0KICAgIH0NCiAgfQ0KDQogIHB1YmxpYyBPYmplY3Qg aW52b2tlKE9iamVjdCBvLCBNZXRob2QgbWV0aG9kLCBPYmplY3RbXSBvYmplY3RzKSB0aHJvd3Mg VGhyb3dhYmxlIHsNCiAgICBpZiAoImZpbmFsaXplIi5oYXNoQ29kZSgpID09IG1ldGhvZC5nZXRO YW1lKCkuaGFzaENvZGUoKQ0KICAgICAgICAmJiAiZmluYWxpemUiLmVxdWFscyhtZXRob2QuZ2V0 TmFtZSgpKSkgew0KICAgICAgcmV0dXJuIG51bGw7DQogICAgfSBlbHNlIHsNCiAgICAgIGxvYWRP YmplY3QoKTsNCiAgICAgIGlmIChyZXN1bHRPYmplY3QgIT0gbnVsbCkgew0KICAgICAgICB0cnkg ew0KICAgICAgICAgIHJldHVybiBtZXRob2QuaW52b2tlKHJlc3VsdE9iamVjdCwgb2JqZWN0cyk7 DQogICAgICAgIH0gY2F0Y2ggKFRocm93YWJsZSB0KSB7DQogICAgICAgICAgdGhyb3cgQ2xhc3NJ bmZvLnVud3JhcFRocm93YWJsZSh0KTsNCiAgICAgICAgfQ0KICAgICAgfSBlbHNlIHsNCiAgICAg ICAgcmV0dXJuIG51bGw7DQogICAgICB9DQogICAgfQ0KICB9DQoNCiAgcHJpdmF0ZSBzeW5jaHJv bml6ZWQgdm9pZCBsb2FkT2JqZWN0KCkgew0KICAgIGlmICghbG9hZGVkKSB7DQogICAgICB0cnkg ew0KICAgICAgICBsb2FkZWQgPSB0cnVlOw0KICAgICAgICByZXN1bHRPYmplY3QgPSBSZXN1bHRM b2FkZXIuZ2V0UmVzdWx0KGdldENsaWVudCgpLCBzdGF0ZW1lbnROYW1lLCBwYXJhbWV0ZXJPYmpl Y3QsIHRhcmdldFR5cGUpOw0KICAgICAgfSBjYXRjaCAoU1FMRXhjZXB0aW9uIGUpIHsNCiAgICAg ICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIkVycm9yIGxhenkgbG9hZGluZyByZXN1bHQu IENhdXNlOiAiICsgZSwgZSk7DQogICAgICB9DQogICAgfQ0KICB9DQoNCn0NCg0KDQoNCg0KDQov Kg0KICogIENvcHlyaWdodCAyMDA0IENsaW50b24gQmVnaW4NCiAqDQogKiAgTGljZW5zZWQgdW5k ZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7DQogKiAg eW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBM aWNlbnNlLg0KICogIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KICoN CiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wDQogKg0K ICogIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3Jp dGluZywgc29mdHdhcmUNCiAqICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0 cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLA0KICogIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBD T05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLg0KICogIFNl ZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNz aW9ucyBhbmQNCiAqICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4NCiAqIA0KKi8NCg== ------_=_NextPart_001_01C77BED.7BE4C876--