看源码的时候发现@ResultType只有在返回值类型为void时才会生效。
//源码参考: org.apache.ibatis.builder.annotation.MapperAnnotationBuilder#getReturnType
if (void.class.equals(returnType)) {
ResultType rt = method.getAnnotation(ResultType.class);
if (rt != null) {
returnType = rt.value();
}
}
那么假如我的应用代码如下,请问,queryStudent如何返回Student对象?或者说@ResultType的意义是什么?
@Select("select * from Student")
@ResultType(Student.class)
void queryStudent();
@ResultType
注解是搭配ResultHandler
来用的。所以你那个写法不对,起码你得定义一个 ResultHandler 出来: