Closed pi408637535 closed 7 years ago
说的有点乱,不是很明白你的意思。
我也发现这个问题,不过找到解决办法,重点是,在dao上面,标注@Mapper,不过这个Mapper是org.apache.ibatis.annotations.Mapper,跟继承的那个Mapper(tk.mybatis.mapper.common.Mapper)不一样 import com.twisin.web.push_wsb.domain.auth.User; import tk.mybatis.mapper.common.Mapper;
@org.apache.ibatis.annotations.Mapper
public interface IUserDao extends Mapper
}
@huan208050 你可以自己建个接口(MyMapper)继承Mapper,然后在用别的接口继承MyMapper。
@abel533 您好,谢谢您的回复。我尝试去创建自己的MyMapper,然后继承Mapper,之后我自己的接口,继承MyMapper,传入泛型 , 但自己创建的MyMapper就报错,代码如下,报错也列出: 1.BaseMapper
@org.apache.ibatis.annotations.Mapper
public interface BaseMapper<T> extends Mapper<T>{
}
2.mapper
public interface UserMapper extends BaseMapper<User> {
}
3.BaseService
@Service
public abstract class BaseService<T> {
@Autowired
protected BaseMapper<T> mapper;
public int save(T entity){
return mapper.insert(entity);
}
}
然后,启动就会报错(springboot环境):
tk.mybatis.mapper.MapperException: java.lang.ClassCastException: sun.reflect.generics.reflectiveObjects.TypeVariableImpl cannot be cast to java.lang.Class
java.lang.ClassCastException: sun.reflect.generics.reflectiveObjects.TypeVariableImpl cannot be cast to java.lang.Class
我尝试着,去按照前面的一个解决方案,在resource目录下,创建META-INF 目录,并创建spring-devtools.properties,然后使用了输入
restart.include.mapper=/mapper-[\\w-\\.]+jar
restart.include.pagehelper=/pagehelper-[\\w-\\.]+jar
,然后并没有效果......目前不知道往哪个方向去查找问题了,能给个方案或者方向吗?谢谢您!!!
不能扫描到通用接口。
@abel533 十分感谢,我把BaseMapper放在了外层,不在mapper包里面,这样就可以正常工作了,也不用在每个自定义mapper上面添加mybatis的@Mapper注解了,谢谢!!!
想抽取给通用Dao层,这样防止以后想买不用Mybatis。但是发现Dao 下面的Bean无法被扫描到。想问这个是为什么