一直以为使用rose框架时不能使用map接受结果集合
后来看源码发现其实是可以的,
只是只能接受两个字段结果集而已。
可使用eyColumnOfMap确定key,则另一个字段则为value
复制源码的doc解释
package net.paoding.rose.jade.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Jade支持DAO方法返回Map形式的,默认情况下Jade选取第一列作为Map的key。
* <p>
* 我们推荐您在写返回map的SQL时,把key放到第一列,但是如果真不想这样做,你可以通过本注解,即{@link KeyColumnOfMap}
* 进行指定。
*
* @author 王志亮 [qieqie.wang@gmail.com]
* @author 廖涵 [in355hz@gmail.com]
*/
@Target( { ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface KeyColumnOfMap {
/**
* 指出要被当成map key的字段名称
*
* @return
*/
String value();
}
demo
@KeyColumnOfMap(value = "id")
@SQL("select name,id from sys_user where id='1' or id ='35085594518f11e7bc8c0021ccc09a62'")
public Map<String, String> getUser();
前台json
{
"status": 200,
"errorMessage": null,
"resultObject": {
"杭州市疾病预防控制中心": "35085594518f11e7bc8c0021ccc09a62",
"浙江省疾控中心": "1"
}
}