Larry Meadors wrote:
On 11/30/06, Stefan Langer <[EMAIL PROTECTED]> wrote:
Larry Meadors wrote:
> 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.
Well the data is there because I'm doing a left join and there are no
pages. This I understand. What I'm interested in knowing is if IBatis
provides a mean to make this be handeled transparently while still
handling the N+1 Problem.
No, it does not currently do that.
>
> The quick solution is to look at the data returned, and remove that
> data if you do not want it there.
Is there someway I can do this through IBatis, like TypeHandler or
something like that, or do I have to do this on my own in my
Domainmodels?
You might look at the RowHandler interface. It would let you do this,
too, but would probably be more work.
>
> 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.
From this I gather that IBatis does not provide such a functionality
and I will have to dig in and provide it myself? Am I correct?
You are correct, yes.
Larry
Thanks for the information. I handled the problem by implementing a
wrapper for List which basically ignores all objects that have a
primarkey that is null. It seemed to me more easily realizable then the
RowHandler interface. Especially since I didn't see how this interface
is used with a nested resultmap.
I wonder if this is a feature other people might want so that it is
worth filing an enhancement request. I'm thinking along the lines of a
special flag on the result node that specifies whether to create an
object if a specified property is null or not. Since I'm very new to
IBATIS I'm lacking the insight to know wether this is even doable or
whether not.
Stefan