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

Reply via email to