[jira] Commented: (IBATIS-375) Provide a way for not creating items from nested ResultMaps when the items contain only null values
[ https://issues.apache.org/jira/browse/IBATIS-375?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12614436#action_12614436 ] Ian Zabel commented on IBATIS-375: -- I'm surprised this improvement hasn't been implemented yet. This is definitely a great feature to have. Odd that it's in the .NET version, but not in Java. > Provide a way for not creating items from nested ResultMaps when the items > contain only null values > --- > > Key: IBATIS-375 > URL: https://issues.apache.org/jira/browse/IBATIS-375 > Project: iBatis for Java > Issue Type: Improvement > Components: SQL Maps >Affects Versions: 2.2.0 >Reporter: Stefan Langer > Attachments: BasicResultMap.java, BasicResultMapping.java, > sql-map-2.dtd, SqlMapParser.java > > > Taken the following resultmaps (uneeded parts are left out) for a simple > domainmodel where notebook contains 0 or more pages. > > > resultMap="Note.pageResult"/> > > > > > and the following select statement: > resultMap="notebookResult"> > SELECT nb.id as nb_id, p.id as p_id, > FROM notebook nb LEFT JOIN page p ON nb.id = p.notebook_id > WHERE nb.id = #id# > > Do to the left join this query will always result in at least one page being > created even though the pages are actually empty. > It would be nice if the mapping framework could somehow not create these > empty objects. > The following suggestions come to mind: > Either do not create objects where all parameters are null (this indicates > the left or right join scenario) > or provide a way to tag a property in the resultMap which may not be null in > order for the object to be created. > Example: > >doNotCreateOnNull="true"/> > > This would greatly ease the use of complex mappings where one wants to > prevent the dreaded N+1 Select Problem. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (IBATIS-375) Provide a way for not creating items from nested ResultMaps when the items contain only null values
[ https://issues.apache.org/jira/browse/IBATIS-375?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12527121 ] Sylvain Laurent commented on IBATIS-375: I created a fix for this issue, adopting the solution already applied by iBatis.NET (see https://issues.apache.org/jira/browse/IBATISNET-206) I added a new attribute "notNullColumn" to the element. If the value of this column is null then the sub object is not created at all. I attach the files I have modified (from version 2.3.0.677) to the issue. > Provide a way for not creating items from nested ResultMaps when the items > contain only null values > --- > > Key: IBATIS-375 > URL: https://issues.apache.org/jira/browse/IBATIS-375 > Project: iBatis for Java > Issue Type: Improvement > Components: SQL Maps >Affects Versions: 2.2.0 >Reporter: Stefan Langer > > Taken the following resultmaps (uneeded parts are left out) for a simple > domainmodel where notebook contains 0 or more pages. > > > resultMap="Note.pageResult"/> > > > > > and the following select statement: > resultMap="notebookResult"> > SELECT nb.id as nb_id, p.id as p_id, > FROM notebook nb LEFT JOIN page p ON nb.id = p.notebook_id > WHERE nb.id = #id# > > Do to the left join this query will always result in at least one page being > created even though the pages are actually empty. > It would be nice if the mapping framework could somehow not create these > empty objects. > The following suggestions come to mind: > Either do not create objects where all parameters are null (this indicates > the left or right join scenario) > or provide a way to tag a property in the resultMap which may not be null in > order for the object to be created. > Example: > >doNotCreateOnNull="true"/> > > This would greatly ease the use of complex mappings where one wants to > prevent the dreaded N+1 Select Problem. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
