3

我在使用mybatis 3.2.2,所有mapper接口都扩展了一个base interface,代码如下:base interface:

public interface BaseMapper<T>{
   public int insert(T record);
   public int insertSelective(T record);
}

public interface JobMapper extends BaseMapper<Job>{
}

然后我测试惰性方法,

jobMapper.insert(job);

错误是:

java.lang.NoSuchMethodError: com.xxx.framework.dao.ifaces.JobMapper.insert(Lcom/xxx/framework/model/Job;)I

但如果是这样:

public interface BaseMapper{
   public int insert(Job record);
   public int insertSelective(Job  record);
}

public interface JobMapper  extends BaseMapper{
}

结果是正确的。

我真的很想使用通用基础接口来实现一些常用方法,比如添加、更新、删除等。有人可以告诉我吗?

4

1 回答 1

0

我的一个项目中有一个通用基础接口的工作示例,因此可以通过正确的 mybatis 配置来实现。但是,由于您没有附加 mybatis 配置,因此很难说出您的情况出了什么问题。

我认为您可以尝试添加类型别名包配置(如果您还没有)来解决此问题:

<typeAliases>
    <package name="com.xxx.framework.model"/>
</typeAliases>

请参阅文档

于 2013-11-22T08:56:36.740 回答