Browse Source

fix: 修复 preferences 字段类型兼容性问题

- 将 User 实体的 preferences 字段从 Object 改为 String
- 移除 JacksonTypeHandler,避免 PostgreSQL JSONB 类型转换问题
- 将数据库 preferences 列从 JSONB 改为 TEXT
- 清理未使用的 import
何文松 1 tháng trước cách đây
mục cha
commit
58f8a8599d

+ 3 - 5
backend/auth-service/src/main/java/com/lingyue/auth/entity/User.java

@@ -1,8 +1,6 @@
 package com.lingyue.auth.entity;
 
-import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.lingyue.common.domain.entity.SimpleModel;
 import io.swagger.v3.oas.annotations.media.Schema;
@@ -40,9 +38,9 @@ public class User extends SimpleModel {
     @TableField("role")
     private String role = "user"; // admin/user/guest
     
-    @Schema(description = "偏好设置")
-    @TableField(value = "preferences", typeHandler = com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.class)
-    private Object preferences;
+    @Schema(description = "偏好设置(JSON字符串)")
+    @TableField("preferences")
+    private String preferences;
     
     @Schema(description = "最后登录时间")
     @TableField("last_login_at")

+ 1 - 1
backend/sql/init.sql

@@ -21,7 +21,7 @@ CREATE TABLE IF NOT EXISTS users (
     password_hash VARCHAR(255) NOT NULL,
     avatar_url VARCHAR(500),
     role VARCHAR(20) NOT NULL DEFAULT 'user', -- admin/user/guest
-    preferences JSONB DEFAULT '{}',
+    preferences TEXT DEFAULT '{}', -- JSON字符串格式存储偏好设置
     last_login_at TIMESTAMP,
     create_by VARCHAR(36),
     create_by_name VARCHAR(100),