如何使用mybatis映射器接口与泛型类型(BaseMapper <t>)?</t>

时间:2013-07-24 07:38:10

标签: java generics mybatis

我正在使用mybatis 3.2.2,并且所有mapper接口都扩展了一个基本接口,代码如下: 基础界面:

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{
}

结果是正确的。

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

1 个答案:

答案 0 :(得分:0)

我在我的一个项目中有一个通用基接口的工作示例,因此可以使用正确的mybatis配置。然而,由于没有附上你的mybatis配置,很难说出你的情况有什么不妥。

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

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

请参阅the documentation