From 80ddeb0ecb1318790cc65fc6a7c917f824914299 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=88=9A=E8=BE=B0=E5=85=88=E7=94=9F?= Date: Thu, 5 Dec 2024 20:39:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=B7=A5=E4=BD=9C=E6=B5=81?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=8F=AF=E6=AD=A3=E5=B8=B8=E5=90=AF=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../converter/JsonObjectConverter.java | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 backend/src/main/java/com/qqchen/deploy/backend/workflow/converter/JsonObjectConverter.java diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/converter/JsonObjectConverter.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/converter/JsonObjectConverter.java new file mode 100644 index 00000000..83fa5ad0 --- /dev/null +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/converter/JsonObjectConverter.java @@ -0,0 +1,45 @@ +package com.qqchen.deploy.backend.workflow.converter; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import jakarta.persistence.AttributeConverter; +import jakarta.persistence.Converter; +import lombok.extern.slf4j.Slf4j; +import org.springframework.util.StringUtils; + +/** + * JSON对象转换器 + * 用于在数据库字符串和Java对象之间进行转换 + */ +@Slf4j +@Converter +public class JsonObjectConverter implements AttributeConverter { + + private static final ObjectMapper objectMapper = new ObjectMapper(); + + @Override + public String convertToDatabaseColumn(Object attribute) { + if (attribute == null) { + return null; + } + try { + return objectMapper.writeValueAsString(attribute); + } catch (JsonProcessingException e) { + log.error("Error converting object to json string", e); + return null; + } + } + + @Override + public Object convertToEntityAttribute(String dbData) { + if (!StringUtils.hasText(dbData)) { + return null; + } + try { + return objectMapper.readValue(dbData, Object.class); + } catch (JsonProcessingException e) { + log.error("Error converting json string to object", e); + return null; + } + } +} \ No newline at end of file