Open Frodez opened 5 years ago
这是对https://github.com/abel533/Mapper/issues/184 中我的comment的补充。 希望增加可以指定返回类型的通用select系列方法,诸如selectOne,selectByExample,selectByPrimaryKey等等凡是select方法都能用的。每次都用stream来转换类型太麻烦了。 比如现在我的mapper对应类A,但是我有个相仿的只包括了A中部分字段的类B,然后我现在希望只查询B中的字段,要么只能自己写sql单独匹配,要么只能用Amapper.selectAll().stream.map(xxxxxx).collect(Collectors.toList())这样的办法,而且后者每次查询会查出所有数据,查询效率低,stream.map也有不小的开销。 可以给这些方法一个重载参数Class<T> resultType,或者取个selectOneFor,selectByExampleFor之类的名字,返回值类型直接就变成T了。 可以把这种理解成在mapper.xml里指定一个resultType。当然由于这个resultType可以随便指定,必要的检查肯定要有,然后只能动态编译,不知道mybatis能否支持。
请问已经解决了吗?我也遇到了这个情景
这是对https://github.com/abel533/Mapper/issues/184 中我的comment的补充。 希望增加可以指定返回类型的通用select系列方法,诸如selectOne,selectByExample,selectByPrimaryKey等等凡是select方法都能用的。每次都用stream来转换类型太麻烦了。 比如现在我的mapper对应类A,但是我有个相仿的只包括了A中部分字段的类B,然后我现在希望只查询B中的字段,要么只能自己写sql单独匹配,要么只能用Amapper.selectAll().stream.map(xxxxxx).collect(Collectors.toList())这样的办法,而且后者每次查询会查出所有数据,查询效率低,stream.map也有不小的开销。 可以给这些方法一个重载参数Class<T> resultType,或者取个selectOneFor,selectByExampleFor之类的名字,返回值类型直接就变成T了。
可以把这种理解成在mapper.xml里指定一个resultType。当然由于这个resultType可以随便指定,必要的检查肯定要有,然后只能动态编译,不知道mybatis能否支持。