ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Larry Meadors" <lmead...@apache.org>
Subject Re: How to handle null objects in nested ResultMaps
Date Wed, 29 Nov 2006 16:50:04 GMT
Not really, no.

If you run this SQL in a database tool, it may become apparent
why..there is data there, it's just null. So iBATIS creates that
data...even if it is null.

The quick solution is to look at the data returned, and remove that
data if you do not want it there.

A better solution might be to add functionality to iBATIS to do this,
so you could tell it to look at a field and if it was null, to skip
the population of the child list.


On 11/29/06, Stefan Langer <mailtolanger@googlemail.com> wrote:
> Hello,
> I new to IBatis and for a small project of mine I'm using only the
> datamapper framework from Ibatis.
> I have a fairly simple data structure where a notebook contains several
> pages.
> For simplicity assume this domainmodel:
> Notebook           Page
>    [id]     1 -> N   [id]
> The corresponding Map looks like this ( this is not a complete example
> as I only want to make clear what my situation is)
> <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>
> I'm using the following select statement to get the notebooks and
> corresponding pages
> <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>
> When I have a notebook that has no pages IBatis sets a page object with
> ID = null in the pages property of notebook.
> I need to get notebooks that do not have pages but in those cases I do
> not wish to have a page object at all.
> Is there an easy way around this situations? I have tried to Google and
> looked at the archive but all the threads that I found dealing with this
> didn't give me any information on how this is solved.
> Thanks for any help
> Regards
> Stefan

View raw message