From 9337373a74743824938368b69fcc10f6b277aa64 Mon Sep 17 00:00:00 2001 From: huangjiayang <5265313@qq.com> Date: 星期三, 23 四月 2025 15:11:20 +0800 Subject: [PATCH] 【UPDATE】修改日历内容jsonB字段适配代码 --- aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsWorkCalendar.java | 6 +++--- aps-modules/aps-core/src/main/java/com/aps/core/typeHandler/JsonTypeHandler.java | 42 ++++++++++++++++++++++++++++++++++++++++++ aps-modules/aps-core/src/main/resources/mapper/core/ApsWorkCalendarMapper.xml | 4 ++-- 3 files changed, 47 insertions(+), 5 deletions(-) diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsWorkCalendar.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsWorkCalendar.java index 5387157..7064fa4 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsWorkCalendar.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsWorkCalendar.java @@ -41,7 +41,7 @@ /** 鏃ュ巻鍐呭 */ @Excel(name = "鏃ュ巻鍐呭") - private String content; + private Object content; /** 閫傜敤宸ュ巶 */ @Excel(name = "閫傜敤宸ュ巶") @@ -105,12 +105,12 @@ return expiringDate; } - public void setContent(String content) + public void setContent(Object content) { this.content = content; } - public String getContent() + public Object getContent() { return content; } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/typeHandler/JsonTypeHandler.java b/aps-modules/aps-core/src/main/java/com/aps/core/typeHandler/JsonTypeHandler.java new file mode 100644 index 0000000..fdc8b20 --- /dev/null +++ b/aps-modules/aps-core/src/main/java/com/aps/core/typeHandler/JsonTypeHandler.java @@ -0,0 +1,42 @@ +package com.aps.core.typeHandler; + +import com.alibaba.fastjson2.JSON; +import org.apache.ibatis.type.BaseTypeHandler; +import org.apache.ibatis.type.JdbcType; +import org.apache.ibatis.type.MappedTypes; +import org.postgresql.util.PGobject; + +import java.sql.CallableStatement; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; + +@MappedTypes({Object.class}) +public class JsonTypeHandler extends BaseTypeHandler<Object> { + + private static final PGobject jsonObject = new PGobject(); + + @Override + public void setNonNullParameter(PreparedStatement preparedStatement, int i, Object o, JdbcType jdbcType) throws SQLException { + jsonObject.setType("jsonb"); + jsonObject.setValue(JSON.toJSONString(o)); + preparedStatement.setObject(i, jsonObject); + } + + @Override + public Object getNullableResult(ResultSet resultSet, String s) throws SQLException { + return resultSet.getString(s); + } + + @Override + public Object getNullableResult(ResultSet resultSet, int i) throws SQLException { + return resultSet.getString(i); + } + + @Override + public Object getNullableResult(CallableStatement callableStatement, int i) throws SQLException { + return callableStatement.getString(i); + } +} + + diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsWorkCalendarMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsWorkCalendarMapper.xml index e491501..d6cd2e3 100644 --- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsWorkCalendarMapper.xml +++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsWorkCalendarMapper.xml @@ -3,7 +3,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.aps.core.mapper.ApsWorkCalendarMapper"> - + <resultMap type="ApsWorkCalendar" id="ApsWorkCalendarResult"> <result property="id" column="id" /> <result property="description" column="description" /> @@ -66,7 +66,7 @@ <if test="type != null">#{type},</if> <if test="effectiveDate != null">#{effectiveDate},</if> <if test="expiringDate != null">#{expiringDate},</if> - <if test="content != null">#{content},</if> + <if test="content != null">#{content, typeHandler=com.aps.core.typeHandler.JsonTypeHandler, jdbcType=OTHER},</if> <if test="applicableFactory != null">#{applicableFactory},</if> <if test="applicableWorkshop != null">#{applicableWorkshop},</if> <if test="applicableProcess != null">#{applicableProcess},</if> -- Gitblit v1.9.3