mirror of
https://github.com/alibaba/canal.git
synced 2026-11-04 00:30:15 +08:00
fix Message转Dml对null值的bug (#1808)
* Message转Dml对null值的判断 * Message转Dml对null值的判断 * Message转Dml对null值的判断
This commit is contained in:
@@ -76,11 +76,16 @@ public class MessageUtil {
|
|||||||
dml.getPkNames().add(column.getName());
|
dml.getPkNames().add(column.getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
row.put(column.getName(),
|
if (column.getIsNull()) {
|
||||||
JdbcTypeUtil.typeConvert(dml.getTable(),column.getName(),
|
row.put(column.getName(), null);
|
||||||
column.getValue(),
|
} else {
|
||||||
column.getSqlType(),
|
row.put(column.getName(),
|
||||||
column.getMysqlType()));
|
JdbcTypeUtil.typeConvert(dml.getTable(),
|
||||||
|
column.getName(),
|
||||||
|
column.getValue(),
|
||||||
|
column.getSqlType(),
|
||||||
|
column.getMysqlType()));
|
||||||
|
}
|
||||||
// 获取update为true的字段
|
// 获取update为true的字段
|
||||||
if (column.getUpdated()) {
|
if (column.getUpdated()) {
|
||||||
updateSet.add(column.getName());
|
updateSet.add(column.getName());
|
||||||
@@ -94,11 +99,16 @@ public class MessageUtil {
|
|||||||
Map<String, Object> rowOld = new LinkedHashMap<>();
|
Map<String, Object> rowOld = new LinkedHashMap<>();
|
||||||
for (CanalEntry.Column column : rowData.getBeforeColumnsList()) {
|
for (CanalEntry.Column column : rowData.getBeforeColumnsList()) {
|
||||||
if (updateSet.contains(column.getName())) {
|
if (updateSet.contains(column.getName())) {
|
||||||
rowOld.put(column.getName(),
|
if (column.getIsNull()) {
|
||||||
JdbcTypeUtil.typeConvert(dml.getTable(),column.getName(),
|
rowOld.put(column.getName(), null);
|
||||||
column.getValue(),
|
} else {
|
||||||
column.getSqlType(),
|
rowOld.put(column.getName(),
|
||||||
column.getMysqlType()));
|
JdbcTypeUtil.typeConvert(dml.getTable(),
|
||||||
|
column.getName(),
|
||||||
|
column.getValue(),
|
||||||
|
column.getSqlType(),
|
||||||
|
column.getMysqlType()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// update操作将记录修改前的值
|
// update操作将记录修改前的值
|
||||||
@@ -162,8 +172,8 @@ public class MessageUtil {
|
|||||||
return dml;
|
return dml;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<Map<String, Object>> changeRows(String table, List<Map<String, String>> rows, Map<String, Integer> sqlTypes,
|
private static List<Map<String, Object>> changeRows(String table, List<Map<String, String>> rows,
|
||||||
Map<String, String> mysqlTypes) {
|
Map<String, Integer> sqlTypes, Map<String, String> mysqlTypes) {
|
||||||
List<Map<String, Object>> result = new ArrayList<>();
|
List<Map<String, Object>> result = new ArrayList<>();
|
||||||
for (Map<String, String> row : rows) {
|
for (Map<String, String> row : rows) {
|
||||||
Map<String, Object> resultRow = new LinkedHashMap<>();
|
Map<String, Object> resultRow = new LinkedHashMap<>();
|
||||||
|
|||||||
Reference in New Issue
Block a user