Kaynağa Gözat

修复空主键异常

AE86 2 yıl önce
ebeveyn
işleme
134156bf86

+ 5 - 0
dbsyncer-connector/src/main/java/org/dbsyncer/connector/schema/DecimalValueMapper.java

@@ -1,5 +1,6 @@
 package org.dbsyncer.connector.schema;
 
+import org.dbsyncer.common.util.NumberUtil;
 import org.dbsyncer.connector.AbstractValueMapper;
 import org.dbsyncer.connector.ConnectorException;
 import org.dbsyncer.connector.ConnectorMapper;
@@ -36,6 +37,10 @@ public class DecimalValueMapper extends AbstractValueMapper<BigDecimal> {
             Boolean b = (Boolean) val;
             return new BigDecimal(b ? 1 : 0);
         }
+        if (val instanceof String) {
+            String s = (String) val;
+            return new BigDecimal(NumberUtil.toInt(s));
+        }
         throw new ConnectorException(String.format("%s can not find type [%s], val [%s]", getClass().getSimpleName(), val.getClass(), val));
     }
 }

+ 1 - 1
dbsyncer-parser/src/main/java/org/dbsyncer/parser/model/Picker.java

@@ -67,7 +67,7 @@ public class Picker {
 
     public String getSourcePrimaryKeyName(ConnectorConfig config) {
         for (Field f : sourceFields) {
-            if (f.isPk()) {
+            if (null != f && f.isPk()) {
                 return f.getName();
             }
         }