瀏覽代碼

# feat:优化数据库表设计并适配User实体

yangyi 2 月之前
父節點
當前提交
34f33ee6c9
共有 3 個文件被更改,包括 38 次插入 和 2 次删除
  1. 14 0
      sql/postgersql.sql
  2. 22 0
      src/main/java/space/anyi/serve/entity/user/User.java
  3. 2 2
      src/main/resources/application.yaml

+ 14 - 0
sql/postgersql.sql

@@ -49,6 +49,20 @@ COMMENT ON COLUMN dev.user.updated_at IS '更新时间';
 
 -- 创建索引
 CREATE INDEX idx_user_role ON dev.user(role);
+
+-- 自动刷新 updated_at 的触发器函数
+CREATE OR REPLACE FUNCTION set_updated_at()
+RETURNS TRIGGER AS $$
+BEGIN
+    NEW.updated_at = NOW();
+    RETURN NEW;
+END;
+$$ LANGUAGE plpgsql;
+
+-- 用户表更新时间自动刷新触发器
+CREATE TRIGGER trg_user_updated_at
+BEFORE UPDATE ON dev.user
+FOR EACH ROW EXECUTE FUNCTION set_updated_at();
 CREATE INDEX idx_user_enable ON dev.user(enable);
 CREATE INDEX idx_user_delete_flag ON dev.user(delete_flag);
 

+ 22 - 0
src/main/java/space/anyi/serve/entity/user/User.java

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 
+import java.time.LocalDateTime;
+
 /**
  * @fileName: User
  * @projectName: serve
@@ -32,6 +34,10 @@ public class User {
     private Integer enable = 1;
     @TableField(value = "delete_flag")
     private Integer deleteFlag = 0;
+    @TableField(value = "created_at")
+    private LocalDateTime createdAt;
+    @TableField(value = "updated_at")
+    private LocalDateTime updatedAt;
 
     public Long getId() {
         return id;
@@ -96,4 +102,20 @@ public class User {
     public void setDeleteFlag(Integer deleteFlag) {
         this.deleteFlag = deleteFlag;
     }
+
+    public LocalDateTime getCreatedAt() {
+        return createdAt;
+    }
+
+    public void setCreatedAt(LocalDateTime createdAt) {
+        this.createdAt = createdAt;
+    }
+
+    public LocalDateTime getUpdatedAt() {
+        return updatedAt;
+    }
+
+    public void setUpdatedAt(LocalDateTime updatedAt) {
+        this.updatedAt = updatedAt;
+    }
 }

+ 2 - 2
src/main/resources/application.yaml

@@ -3,12 +3,12 @@ server:
 
 spring:
   application:
-    name: serve
+    name: oj
     admin:
       enabled: true
   datasource:
     type: com.alibaba.druid.pool.DruidDataSource
-    url: jdbc:postgresql://${databaseHost}:5432/serve?currentSchema=dev&useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC+8
+    url: jdbc:postgresql://${databaseHost}:5432/oj?currentSchema=dev&useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC+8
     driver-class-name: org.postgresql.Driver
     username: ${databaseUsername}
     password: ${databasePassword}