如何在 mybatis 的结果映射中 return 具有空值的列
How to return columns with null values in a result map in mybatis
<select id="keyEquipmentShiftAutomatedModelData" parameterType="java.util.Map" resultType="java.util.Map">
SELECT ID, SUM(VALUE1 + VALUE2) Total
FROM tableName
GROUP BY ID
</select>
Returns below result in sql
ID, Total
1 (null)
但是当在 Map 中返回时,myBatis returns {ID=1} 中缺少 Total。如何将带有 null 的列放入结果集中以及类似 {ID=1,Total=null} 或类似 {ID=1,Total=""}
的内容
添加
<settings>
<setting name="callSettersOnNulls" value="true"/>
</settings>
mybatis-config.xml修复mybatis 3.2+版本
的问题
谢谢,它有效,此外你需要转换值
columns[i] = (value == null) ? "" : String.valueOf(value);
这可以使用 coalesce
简单地解决 Sql:
COALESCE( SUM(VALUE1 + VALUE2), '') as Total
<select id="keyEquipmentShiftAutomatedModelData" parameterType="java.util.Map" resultType="java.util.Map">
SELECT ID, SUM(VALUE1 + VALUE2) Total
FROM tableName
GROUP BY ID
</select>
Returns below result in sql
ID, Total
1 (null)
但是当在 Map 中返回时,myBatis returns {ID=1} 中缺少 Total。如何将带有 null 的列放入结果集中以及类似 {ID=1,Total=null} 或类似 {ID=1,Total=""}
的内容添加
<settings>
<setting name="callSettersOnNulls" value="true"/>
</settings>
mybatis-config.xml修复mybatis 3.2+版本
的问题谢谢,它有效,此外你需要转换值
columns[i] = (value == null) ? "" : String.valueOf(value);
这可以使用 coalesce
简单地解决 Sql:
COALESCE( SUM(VALUE1 + VALUE2), '') as Total