简体   繁体   English

如何在Mybatis的结果图中返回具有空值的列

[英]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)

But when returned in Map result in myBatis returns {ID=1} where as Total is missing. 但是,当在Map中返回结果时,myBatis返回{ID = 1},其中缺少Total。 How to get the column with null into the result set as well something like this {ID=1,Total=null} or something like this {ID=1,Total=""} 如何将具有null的列以及诸如此类的{ID = 1,Total = null}或诸如此类的{ID = 1,Total =“”}

Adding 添加

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

mybatis-config.xml fixes the issue if using mybatis 3.2 + version 如果使用mybatis 3.2及更高版本,mybatis-config.xml可解决此问题

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

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

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

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM