如何在mybatis中的结果映射中返回具有空值的列

时间:2016-01-05 07:54:28

标签: java orm mybatis ibatis

<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返回{ID = 1},其中Total缺失。如何将带有null的列添加到结果集中以及类似这样的内容{ID = 1,Total = null}或类似这样的内容{ID = 1,Total =“”}

3 个答案:

答案 0 :(得分:6)

添加

<settings>
<setting name="callSettersOnNulls" value="true"/>
</settings>

mybatis-config.xml修复了使用mybatis 3.2 +版本

时的问题

答案 1 :(得分:0)

谢谢,它有效,除了你需要转换值

columns[i] = (value == null) ? "" : String.valueOf(value);

答案 2 :(得分:0)

可以使用普通SQL中的coalesce轻松解决此问题:

COALESCE( SUM(VALUE1 + VALUE2), '') as Total