[ https://issues.apache.org/jira/browse/IBATIS-375?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Clinton Begin closed IBATIS-375. -------------------------------- Resolution: Fixed Fix Version/s: 2.3.4 applied patch > 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 > Fix For: 2.3.4 > > Attachments: BasicResultMap.java, BasicResultMapping.java, > iBATIS-375.patch, 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 class="notebook" groupBy="id" id="notebookResult"> > <result column="NB_ID" jdbcType="VARCHAR" property="id"/> > <result javaType="java.util.List" property="pages" > resultMap="Note.pageResult"/> > </resultMap> > <resultMap class="page" groupBy="id" id="pageResult"> > <result column="P_ID" jdbcType="VARCHAR" property="id"/> > </resultMap> > and the following select statement: > <select id="selectNotebook" parameterClass="java.lang.String" > 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# > </select> > 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: > <resultMap class="page" groupBy="id" id="pageResult"> > <result column="P_ID" jdbcType="VARCHAR" property="id" > doNotCreateOnNull="true"/> > </resultMap> > 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.