diff --git a/daxpay-platform/daxpay-platform-common/common-mybatis-plus/src/main/java/cn/daxpay/open/platform/common/mybatisplus/handler/type/JsonbStringTypeHandler.java b/daxpay-platform/daxpay-platform-common/common-mybatis-plus/src/main/java/cn/daxpay/open/platform/common/mybatisplus/handler/type/JsonbStringTypeHandler.java index 0c0315e59..5bc3dca7d 100644 --- a/daxpay-platform/daxpay-platform-common/common-mybatis-plus/src/main/java/cn/daxpay/open/platform/common/mybatisplus/handler/type/JsonbStringTypeHandler.java +++ b/daxpay-platform/daxpay-platform-common/common-mybatis-plus/src/main/java/cn/daxpay/open/platform/common/mybatisplus/handler/type/JsonbStringTypeHandler.java @@ -10,6 +10,7 @@ import java.sql.CallableStatement; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import java.sql.Types; /// # PostgreSQL jsonb 字符串类型处理器。 /// @@ -27,6 +28,11 @@ public class JsonbStringTypeHandler extends BaseTypeHandler { @Override public void setNonNullParameter(PreparedStatement ps, int i, String parameter, JdbcType jdbcType) throws SQLException { + // 空字符串不是合法 JSON, jsonb 列应存 NULL + if (parameter == null || parameter.isBlank()) { + ps.setNull(i, Types.OTHER); + return; + } PGobject jsonObject = new PGobject(); jsonObject.setType("jsonb"); jsonObject.setValue(parameter);