当前使用版本(必须填写清楚,否则不予处理)
所有版本
该问题是怎么引起的?(最新版上已修复的会直接close掉)
功能缺失
重现步骤
我的打算是,update,insert,delete使用mybatis-plus的baseMapper继承解决, 查询单个实体也会使用mybatis-plus, 但是查询多条记录,我会自己在代码里面写sql,不会使用mybatis-plus,因为sql更方便。
有鉴于此,比如网站demo上的userMapper,我每个表都会写个xxMapper去继承baseMapper。
而我所需的功能,只依赖与实体类,比方说demo的User。
BaseMapper能不能直接提供给使用者,在update,insert,delete,或query实体的时候,直接传输个泛型,把实体类比如User传递进去就行了。
没必要多写个UserMapper去继承BaseMapper,然后里面什么代码也不写,就传递了BaseMapper
这个思想是启发于netcore的dapper扩展库,dapper也是一个非常不错的orm。 在springboot上,为了使用出dapper的效果,必须用jdbc解决在代码中写sql查询实体类数组(已解决), 用mybatis-plus解决insert,update,delete,queryOne。 但是mybatis-plus比他多了一个无用的步骤,就是必须继承BaseMapper,不能直接给BaseMapper传递泛型类,让他直接就使用。
我使用
报错信息
最后我的想法是,现有功能,不再使用Autowire注入Mapper,写个bean单独提供支持所有类型的数据操作,在这个bean里面,动态根据传入实体类型T,用代码构造出相应的Mapper,然后去执行数据操作。 无奈想法是有,动手起来麻烦很多
Comment From: ytche
可以可以,兄台想法很好。
有空就多想想。
Comment From: qmdx
因为 MP 启动的时候需要扫描 Mapper 注入 mybatis 容器,你想无继承就必须解决如何去判断哪些是需要注入的实体表 SQL 问题!这个想法是好的,如何解决该问题有待商榷
Comment From: yuxiaobin
@null0null 这个或许能满足你:
https://github.com/yuxiaobin/mybatis-generalmapper
Comment From: xinzhang-hello
看下jpa entityManager可以用