如何获得返回可选<list <vo>&gt;来自mybatis

时间:2018-04-13 02:54:23

标签: java spring java-8 mybatis

我不是说英语的人。

因为英语不流利。

我想在Mapper中使用Optional

像这样

public interface TestMapper {
    @Transactional(readOnly = true)
    Optional<List<VO>> selectDataOpt();
}

<select id="selectDataOpt" resultType="VO">
    SELECT ID, NAME, CALL_NUM
    FROM  USER
    ORDER BY INSERTDATE ASC
    LIMIT 100
</select>

但mybatis打印异常消息

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 21

我能做什么我不知道自己错过了什么?

感谢您阅读

借助你的智慧。

1 个答案:

答案 0 :(得分:0)

删除Optional

你的框架/ lib抱怨他从DB得到太多结果但是你要求他压缩到只有一个(可选)变量。

如果您希望从DB获得一个或没有结果,则只需使用Optional

对于列表,只要保持原样,大多数框架/ lib将为您返回一个空列表。