From 34981c30a78e8bbd7791131059a9210f9928b62c Mon Sep 17 00:00:00 2001
From: 刘光辉 <347230014@qq.com>
Date: 星期四, 17 九月 2026 09:24:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into master
---
jnpf-dms/jnpf-dms-biz/src/main/java/jnpf/dmsDatabase/DmsUuidTypeHandler.java | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 53 insertions(+), 0 deletions(-)
diff --git a/jnpf-dms/jnpf-dms-biz/src/main/java/jnpf/dmsDatabase/DmsUuidTypeHandler.java b/jnpf-dms/jnpf-dms-biz/src/main/java/jnpf/dmsDatabase/DmsUuidTypeHandler.java
new file mode 100644
index 0000000..2481c01
--- /dev/null
+++ b/jnpf-dms/jnpf-dms-biz/src/main/java/jnpf/dmsDatabase/DmsUuidTypeHandler.java
@@ -0,0 +1,53 @@
+package jnpf.dmsDatabase;
+
+import org.apache.ibatis.type.BaseTypeHandler;
+import org.apache.ibatis.type.JdbcType;
+import org.apache.ibatis.type.MappedJdbcTypes;
+import org.apache.ibatis.type.MappedTypes;
+
+import java.sql.CallableStatement;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Types;
+import java.util.UUID;
+
+@MappedTypes(UUID.class)
+@MappedJdbcTypes(value = JdbcType.OTHER, includeNullJdbcType = true)
+public class DmsUuidTypeHandler extends BaseTypeHandler<UUID> {
+
+ @Override
+ public void setNonNullParameter(PreparedStatement statement, int index, UUID value, JdbcType jdbcType)
+ throws SQLException {
+ statement.setObject(index, value, Types.OTHER);
+ }
+
+ @Override
+ public UUID getNullableResult(ResultSet resultSet, String columnName) throws SQLException {
+ return toUuid(resultSet.getObject(columnName));
+ }
+
+ @Override
+ public UUID getNullableResult(ResultSet resultSet, int columnIndex) throws SQLException {
+ return toUuid(resultSet.getObject(columnIndex));
+ }
+
+ @Override
+ public UUID getNullableResult(CallableStatement statement, int columnIndex) throws SQLException {
+ return toUuid(statement.getObject(columnIndex));
+ }
+
+ private UUID toUuid(Object value) throws SQLException {
+ if (value == null) {
+ return null;
+ }
+ if (value instanceof UUID) {
+ return (UUID) value;
+ }
+ try {
+ return UUID.fromString(value.toString());
+ } catch (IllegalArgumentException exception) {
+ throw new SQLException("Invalid PostgreSQL UUID value: " + value, exception);
+ }
+ }
+}
--
Gitblit v1.8.0