I think I solved the problem. When I typed the problem out, I did not realize I incorrectly stated the result map, which should be:

  <resultMap id="BResult" class="BImpl">
    <result property="a.name" column="name" />
  </resultMap>

Jeff, my original example and your example worked because it was done the "correct way" -- it seems when nested interfaces are involved, I am forced to use the inner resultMap. That's fine by me, but I did not realize this until I spoke out the entire problem, which you and Clinton helped me through.

Thanks for all your help. It was a difficult problem to explain, but I can now see how to solve this design pattern: nested interfaces require an inner resultMap so you can specify the implementation. I am glad I asked for that enhancement for 2.2 :)

Also I apologize for any wasted time on both your parts! Thanks again.

Paul


Paul Benedict wrote:
Can you send the test case? That would be great. The example I did not try per se, but it is a simplified example of what I've experienced for a long time. The class and properties names aren't the same but the concept is.

Paul

Jeff Butler wrote:
Hi Paul,
Did you actually try this? I did and had no trouble running it. I'd be happy to send you the test case if you want, but I think it's exactly what you described. Jeff Butler

On 1/15/07, *Paul Benedict* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

    I erred at the start of 4th paragraph:

    It read:
     >>iBATIS errs out on #4 because it invokes BImpl.setA(), but gets
    back only the interface from BImpl.getA().

    It should read:
     >>iBATIS errs out on #4 because it invokes setName() from
    BImpl.getA(), but the method doesn't exist at this level.

    Paul



Reply via email to