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 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.