为什么我 mybatis xml中是用了unionAll获取数量并指定resultType为long 在获取时我的结果集合中为空
时间: 2024-02-06 10:10:03 浏览: 117
mybatis中查询结果为空时不同返回类型对应返回值问题
5星 · 资源好评率100%
可能是因为你在使用 MyBatis 的 resultMap 时没有正确配置。你需要确保 resultMap 的配置正确,包括:
1. 对于 unionAll 查询,你需要在 resultMap 中指定 column 属性来指定结果集中的列名,并且需要使用别名(alias)来给这些列取一个合适的名称,以便在 MyBatis 中进行映射。
2. 在 resultMap 中正确指定对应的 Java 类型,以便 MyBatis 可以将结果集中的数据正确地转换为 Java 对象。
以下是一个示例 resultMap 的配置:
```
<resultMap id="countResultMap" type="long">
<result column="count" property="count"/>
</resultMap>
```
在你的 MyBatis mapper 中,你需要正确引用这个 resultMap:
```
<select id="getCount" resultType="long" parameterType="map">
SELECT COUNT(*) AS count FROM table1 UNION ALL SELECT COUNT(*) AS count FROM table2
</select>
```
请注意 resultMap 的 id 和 result 标签中的 column 属性必须与 SQL 语句中的列名和别名一致。
阅读全文