mybatis如何接收返回类型为Set<String> 呢

现在想接收返回值为Set<String> 的列表,结果发现里面没有看到相关的方法,不知这种要如何处理呢?
尝试了

  HashSet<String> roles = sqlSessionTemplate.selectList("ShiroUser.findAllRoleNameByUsername",uname)

    HashSet<String> roles = sqlSessionTemplate.select("ShiroUser.findAllRoleNameByUsername",uname);

结果都报错,网上搜索也没能看到相关解决方案。

慕标5832272
浏览 8377回答 5
5回答

慕运维8079593

返回参数写 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); } }

饮歌长啸

MyBatis是直接返回List的,可以直接像 @Rebuilding127 的回答使用Mapper类配置来做自动List转换Set。如果要用SqlSession来读取数据的话,可以自动做List到Set的转换,即: List<String> roleList = sqlSessionTemplate.selectList("ShiroUser.findAllRoleNameByUsername", uname); Set<String> roleSet = new HashSet<>(roleList);

胡子哥哥

mybatis源码里面就没有返回值为set的接口,这个现实不了的,只能自己来做逻辑处理了

莫回无

自己处理一下吧,没有直接返回set的
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java