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: interface property predicaments
Date Tue, 11 Jul 2006 17:26:25 GMT
Why does iBATIS need to know anything about the interface?

Larry


On 7/11/06, Paul Benedict <paul4christ79@yahoo.com> wrote:
> Larry, I am implementing an API. So this is the problem I have to deal with
> :-(
>
> The other guy is right. Ibatis thinks there is no setId on the Person
> because Person interface is read-only, although in the sqlmap I am
> constructing a PersonImpl on an ArticleImpl.
>
> I believe ibatis can be changed to solve this problem: Assuming that ibatis
> constructs inner objects as it navigates (does it?), it should use the
> instance it creates rather than looking at the type from the getter.
>
> Otherwise I will have to have a diferent getter on my object just for ibatis
> that returns the impl.
>
> Paul
>
>
> Larry Meadors <lmeadors@apache.org> wrote:
>
>  So...I do not understand..your beans are interfaces?
>
> How often do you swap out the implementation of your beans? ;-)
>
> Larry
>
>
> On 7/10/06, Paul Benedict wrote:
> > I have two interfaces: Article and Person. My problem is with my Article
> > implementation:
> >
> > public interface Article {
> > public Person getPerson();
> > }
> >
> > public class ArticleImpl extends Article {
> > private Person person;
> > public Person getPerson() {
> > return person;
> > }
> > public void setPerson(Person person) {
> > this.person = person;
> > }
> > // required for ibatis object construction
> > public void setPerson(PersonImpl person) {
> > this.person = person;
> > }
> > }
> >
> > I am using ibatis to construct it as follows:
> >
> >
> >
> >
> >
> > I get that annoying "cannot find WRITABLE property id in Person" message
> > because it is looks at Article.getPerson() which returns the interface not
> > implementation. But why should that matter? This is wrong behavior, imo. I
> > know ibatis constructs the inner object first. It will create a
> PersonImpl,
> > set property "id" from column "person_id", and then call the setter on
> > Article.
> >
> > Otherwise, I am left believing ibatis cannot work with classes which need
> to
> > implement a read-only interface..... or someone can recommend the
> solution,
> > which I might be unable to find?
> >
> > Paul
> >
> >
> > ________________________________
> > How low will we go? Check out Yahoo! Messenger's low PC-to-Phone call
> rates.
> >
> >
>
>
>
>
>  ________________________________
> Do you Yahoo!?
>  Next-gen email? Have it all with the all-new Yahoo! Mail Beta.
>
>

Mime
View raw message