The best thing you can do is try the patch. iBATIS is easy to check out and build (one-click build principle). So if you check out the source, apply the patch and let us know if it works for you, that gives me a lot more confidence.
Cheers, Clinton On Thu, Dec 10, 2009 at 1:50 PM, Soks86 <michael.chrostow...@gmail.com>wrote: > > Is there anything I could do to help the patch along? Would trying the > patch > and vouching for it help... anything like that? > > The only fix without changes is to @Override the methods in all my > interfaces and that will drive me nuts (wish I had interns...). > > Thank you for the quick reply. > > > Clinton Begin wrote: > > > > Interface inheritance is not yet supported. There's a Jira ticket with a > > patch submitted, here: > > > > http://issues.apache.org/jira/browse/IBATIS-655 > > > > Clinton > > > > On Thu, Dec 10, 2009 at 11:23 AM, Soks86 > > <michael.chrostow...@gmail.com>wrote: > > > >> > >> Hi, > >> > >> I've been switching my project over to iBATIS from a pretty complete > >> Hibernate project. I've run into an issue with how the iBATIS > >> configuration > >> seems to look up mapped methods. I'm currently using Beta 5 since my > >> Maven > >> isn't seeing repo2.maven.org/org/... for some reason. I have an > interface > >> dao as such: > >> > >> public interface Dao<T> { > >> void delete(T arg); > >> void save(T arg); > >> void update(T arg); > >> T load(T arg); > >> } > >> > >> then I have another interface which extends this > >> > >> public interface SomeTypeDao extends Dao<SomeType> { > >> SomeType loadBySomething(String arg); > >> } > >> > >> and finally my implementation: > >> > >> public class IbatisSomeTypeDao implements SomeTypeDao { > >> void delete(SomeType arg) { > >> SqlSession session = sessionFactory.openSession(); > >> try { > >> SomeTypeDao dao = session.getMapper(SomeTypeDao.class); > >> dao.delete(arg); > >> session.commit(); > >> } finally { > >> session.close(); > >> } > >> //... other code omitted but present in actual code > >> } > >> > >> My mapping file is for the namespace of SomeTypeDao and that is the only > >> mapped interface or class from the three I posted above. > >> > >> Now when I call IbatisSomeTypeDao.delete(arg) instead of finding my > >> mapped > >> interface (SomeTypeDao.delete()) iBATIS seems to look for delete() in my > >> Dao<T> class instead and thus it looks for a mapping for Dao<T> (which > >> doesn't exist) and then I get this exception: > >> > >> java.lang.IllegalArgumentException: Mapped Statements collection does > not > >> contain value for com.icarus.common.dao.Dao.delete > >> at > >> > >> > org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:366) > >> at > >> > >> > org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:312) > >> at > >> > >> > org.apache.ibatis.binding.MapperMethod.setupCommandType(MapperMethod.java:131) > >> at > >> org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:41) > >> at > >> org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:18) > >> at $Proxy1.delete(Unknown Source) > >> > >> > >> Am I missing something here? It would seem to me that this is a > >> limitation > >> of iBATIS' configuration class. Shouldn't it first look for a mapping > for > >> SomeTypeDao and find my mapping? I do know for a fact that if I call > >> SomeTypeDao.loadBySomething (method that isn't in Dao<T> generic type) > >> then > >> the Configuration seems to find the appropriate mapping and doesn't > >> complain. However any method that was inherited by the interface is > >> mapped > >> to the parent interface it seems. > >> > >> Ideas? Help? > >> > >> Thanks. > >> -- > >> View this message in context: > >> > http://old.nabble.com/Issue-with-Interface-Mapper-that-Extends-an-Interface-itself-tp26732131p26732131.html > >> Sent from the iBATIS - User - Java mailing list archive at Nabble.com. > >> > >> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: user-java-unsubscr...@ibatis.apache.org > >> For additional commands, e-mail: user-java-h...@ibatis.apache.org > >> > >> > > > > > > -- > View this message in context: > http://old.nabble.com/Issue-with-Interface-Mapper-that-Extends-an-Interface-itself-tp26732131p26734289.html > Sent from the iBATIS - User - Java mailing list archive at Nabble.com. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: user-java-unsubscr...@ibatis.apache.org > For additional commands, e-mail: user-java-h...@ibatis.apache.org > >