现在想接收返回值为Set<String> 的列表,结果发现里面没有看到相关的方法,不知这种要如何处理呢?尝试了
HashSet<String> roles = sqlSessionTemplate.selectList("ShiroUser.findAllRoleNameByUsername",uname)
HashSet<String> roles = sqlSessionTemplate.select("ShiroUser.findAllRoleNameByUsername",uname);
结果都报错,网上搜索也没能看到相关解决方案。
5 回答

慕运维8079593
TA贡献1876条经验 获得超5个赞
返回参数写 resultType="String"
即可。
例如:
mapping.xml文件
<select id="selectPk" resultType="String">
select pk_id from user_operation order by create_time desc
</select>
mapper文件
Set<String> selectPk();
获取数据,比如直接写在Controller中
Set<String> result = this.mapper.selectPk();
System.out.println(result);
if (result.size() > 0) {
for (String id : result) {
System.out.println(id);
}
}

饮歌长啸
TA贡献1951条经验 获得超3个赞
MyBatis是直接返回List的,可以直接像 @Rebuilding127 的回答使用Mapper类配置来做自动List转换Set。如果要用SqlSession来读取数据的话,可以自动做List到Set的转换,即:
List<String> roleList = sqlSessionTemplate.selectList("ShiroUser.findAllRoleNameByUsername", uname);
Set<String> roleSet = new HashSet<>(roleList);
添加回答
举报
0/150
提交
取消