Jelajahi Sumber

fix: 修复 DocumentElement 实体 JSONB 字段映射问题

- 为所有字段添加 @TableField 注解,明确列名映射
- style 和 table_data 字段指定 JacksonTypeHandler 处理 JSONB 类型
何文松 1 bulan lalu
induk
melakukan
f7d2ebdea1

+ 15 - 2
backend/document-service/src/main/java/com/lingyue/document/entity/DocumentElement.java

@@ -25,16 +25,19 @@ public class DocumentElement extends SimpleModel {
     /**
      * 文档 ID
      */
+    @TableField("document_id")
     private String documentId;
     
     /**
      * 元素在文档中的顺序索引
      */
+    @TableField("element_index")
     private Integer elementIndex;
     
     /**
      * 元素类型:paragraph/heading/heading1-9/list_item/image/table/title/toc
      */
+    @TableField("element_type")
     private String elementType;
     
     /**
@@ -46,7 +49,7 @@ public class DocumentElement extends SimpleModel {
      * 样式信息(JSON)
      * {alignment, fontSize, fontFamily, bold, italic, underline, color, indentLeft, indentFirstLine, lineSpacing}
      */
-    @TableField(typeHandler = JacksonTypeHandler.class)
+    @TableField(value = "style", typeHandler = JacksonTypeHandler.class)
     private Map<String, Object> style;
     
     // ========== 图片相关 ==========
@@ -54,31 +57,37 @@ public class DocumentElement extends SimpleModel {
     /**
      * 图片访问 URL
      */
+    @TableField("image_url")
     private String imageUrl;
     
     /**
      * 图片存储路径
      */
+    @TableField("image_path")
     private String imagePath;
     
     /**
      * 图片描述/替代文本
      */
+    @TableField("image_alt")
     private String imageAlt;
     
     /**
      * 图片宽度(像素)
      */
+    @TableField("image_width")
     private Integer imageWidth;
     
     /**
      * 图片高度(像素)
      */
+    @TableField("image_height")
     private Integer imageHeight;
     
     /**
      * 图片格式:png/jpg/gif/etc
      */
+    @TableField("image_format")
     private String imageFormat;
     
     // ========== 表格相关 ==========
@@ -86,27 +95,31 @@ public class DocumentElement extends SimpleModel {
     /**
      * 表格索引
      */
+    @TableField("table_index")
     private Integer tableIndex;
     
     /**
      * 表格数据(JSON)
      * [[{row, col, text, colSpan, rowSpan, merged}, ...], ...]
      */
-    @TableField(typeHandler = JacksonTypeHandler.class)
+    @TableField(value = "table_data", typeHandler = JacksonTypeHandler.class)
     private List<List<Map<String, Object>>> tableData;
     
     /**
      * 表格行数
      */
+    @TableField("table_row_count")
     private Integer tableRowCount;
     
     /**
      * 表格列数
      */
+    @TableField("table_col_count")
     private Integer tableColCount;
     
     /**
      * 表格文本(用于搜索)
      */
+    @TableField("table_text")
     private String tableText;
 }