You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ibatis.apache.org by "Kai Grabfelder (JIRA)" <ib...@incubator.apache.org> on 2009/05/12 20:07:45 UTC
[jira] Commented: (IBATIS-596) Null-References for sub selects with
lazy loading
[ https://issues.apache.org/jira/browse/IBATIS-596?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12708538#action_12708538 ]
Kai Grabfelder commented on IBATIS-596:
---------------------------------------
Sounds like an interesting feature. Could you add a testcase against the current trunk? An updated iBATIS-SqlMaps-2_en.sxw file documenting your change would also be great.
> Null-References for sub selects with lazy loading
> -------------------------------------------------
>
> Key: IBATIS-596
> URL: https://issues.apache.org/jira/browse/IBATIS-596
> Project: iBatis for Java
> Issue Type: Improvement
> Components: SQL Maps
> Affects Versions: 2.3.4
> Reporter: Stefan Gmeiner
> Fix For: 2.3.5
>
> Attachments: null-proxy.patch
>
>
> We are using the iBatis enhanced (cglib) proxy for lazy loading our sub-select bean references.
> Unfortunately if a reference is null iBatis creates a proxy with
> null content. This makes using lazy loading less transparent to clients as they are required
> to execute further checks to see if the returned object is null.
> Hence we are suggesting a simple solution which is attached as a patch:
> A proxy for a lazy loaded object is now only created if the foreign key is non-null.
> When using the curly braces syntax (parameter map) a postfix '?' is required to activate
> the new lazy loading otherwise the existing strategy is used. This allows for the possibility
> of subselects requiring a null value as foreign key.
> Example:
> <result property="jobs" column="job_pk" select="selectJob"/>
> This will return null if job_pk is null and a proxy for the job is job_pk is not null.
> <result property="jobs" column="{transportIdentifier=job_pk}" select="selectJob"/>
> This will always return a proxy object irrespective of the job_pk value.
> <result property="jobs" column="{transportIdentifier=job_pk?}" select="selectJob"/>
> This will return null if job_pk is null and a proxy for the job is job_pk is not null.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.