我正在尝试从数据库中检索值,但我无法获取所有值。我得到了TooManyResultsException
。
MapperInterface
这是我正在调用的映射器接口。
public interface ITranslatorDAO
{
Map<String, Map<String, String>> translate();
}
mapper.xml
这部分是我针对DB运行的SQL,它有190行。我想检索所有行,但它正在抛出异常,如下所述。
<select id="translate" resultType="map">
SELECT
section,
data,
translation
FROM
web_data..wd_ofx_translate
ORDER BY
section,
data,
translation
</select>
异常追溯
Exception in thread "main" org.mybatis.spring.MyBatisSystemException:
nested exception is org.apache.ibatis.exceptions.TooManyResultsException:
Expected one result (or null) to be returned by selectOne(), but found: 190
答案 0 :(得分:2)
你应该添加@MapKey告诉mybatis你想要的表中哪一列作为地图的键,比如使用section column作为地图的键:
public interface ITranslatorDAO{
@MapKey("section")
Map<String, Map<String, String>> translate();
}
答案 1 :(得分:-2)
如果要运行选择一行行的查询,则使用selectOne()方法。如果要选择多行,请使用其他方法。