Mybaits-plus 默认开启 mapunderscoretocamelcase
驼峰命名规则映射,它会将 SQL 查询结果中以下划线命名的数据库字段(比如 A_COLUMN
)映射为以驼峰命名的 Java 类字段(比如 aColumn
)。
[!WARNING]
如果此时将 Java 类字段定义为小写下划线规则,比如a_column
,那么这个Java 类字段就接受不到 Mybatis 查询的结果。比如:
@Data
public SomeResponse {
private String n_alms;
private String c_alms;
private String b_alms;
}
<select id="getAlarmCountToday" resultType="com.example.demo.device.model.SomeResponse">
SELECT
SUM(IF(DATE(alarm_time) = CURRENT_DATE AND alarm_type = 'c_alms', 1, 0)) AS c_alms,
SUM(IF(DATE(alarm_time) = CURRENT_DATE AND alarm_type = 'b_alms', 1, 0)) AS b_alms,
SUM(IF(DATE(alarm_time) = CURRENT_DATE AND alarm_type = 'n_alms', 1, 0)) AS n_alms
FROM device_alarm_record
WHERE tenant_id = #{tenantId}
</select>