婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 詳解Spring data 定義默認時間與日期的實例

詳解Spring data 定義默認時間與日期的實例

熱門標簽:自繪地圖標注數據 潤滑油銷售電銷機器人 電話機器人需要使用網絡嗎 南通通訊外呼系統產品介紹 如何看懂地圖標注點 外呼系統使用方法 電銷機器人免培訓 海外圖書館地圖標注點 給地圖標注得傭金

詳解Spring data 定義默認時間與日期的實例

前言:

需求是這樣的:

1. 創建時間與更新時間只能由數據庫產生,不允許在實體類中產生,因為每個節點的時間/時區不一定一直。另外防止人為插入自定義時間時間。

2. 插入記錄的時候創建默認時間,創建時間不能為空,時間一旦插入不允許日后在實體類中修改。

 3. 記錄創建后更新日志字段為默認為 null 表示該記錄沒有被修改過。一旦數據被修改,修改日期字段將記錄下最后的修改時間。

4. 甚至你可以通過觸發器實現一個history 表,用來記錄數據的歷史修改,詳細請參考作者另一部電子書《Netkiller Architect 手札》數據庫設計相關章節。

10.1.6. 默認時間規則

10.1.6.1. CreatedDate

Spring 提供了 import org.springframework.data.annotation.CreatedDate;

但是這些只能作用于實體類。

@CreatedDate
  private Date createdDateTime;

10.1.6.3. 數據庫級別的默認創建日期時間定義

package cn.netkiller.api.domain.elasticsearch;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table
public class ElasticsearchTrash {
 @Id
 private int id;

 @Column(columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
 private Date ctime;

 public int getId() {
 return id;
 }

 public void setId(int id) {
 this.id = id;
 }

 public Date getCtime() {
 return ctime;
 }

 public void setCtime(Date ctime) {
 this.ctime = ctime;
 }

}

對應數據庫DDL

CREATE TABLE `elasticsearch_trash` (
 `id` int(11) NOT NULL,
 `ctime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

10.1.6.4. 數據庫級別的默認創建日期與更新時間定義

需求是這樣的:

1. 創建時間與更新時間只能由數據庫產生,不允許在實體類中產生,因為每個節點的時間/時區不一定一直。另外防止人為插入自定義時間時間。

2. 插入記錄的時候創建默認時間,創建時間不能為空,時間一旦插入不允許日后在實體類中修改。

3. 記錄創建后更新日志字段為默認為 null 表示該記錄沒有被修改過。一旦數據被修改,修改日期字段將記錄下最后的修改時間。

4. 甚至你可以通過觸發器實現一個history 表,用來記錄數據的歷史修改,詳細請參考作者另一部電子書《Netkiller Architect 手札》數據庫設計相關章節。

package cn.netkiller.api.domain.elasticsearch;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.validation.constraints.Null;

@Entity
@Table
public class ElasticsearchTrash {
 @Id
 private int id;

 // 創建時間
 @Column(insertable = false, updatable = false, columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
 private Date ctime;
 
 // 修改時間
 @Column(nullable = true, insertable = false, updatable = false, columnDefinition = "TIMESTAMP NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP")
 private Date mtime;

 public int getId() {
 return id;
 }

 public void setId(int id) {
 this.id = id;
 }

 public Date getCtime() {
 return ctime;
 }

 public void setCtime(Date ctime) {
 this.ctime = ctime;
 }

 public Date getMtime() {
 return mtime;
 }

 public void setMtime(Date mtime) {
 this.mtime = mtime;
 }

}

對應數據庫DDL

CREATE TABLE `elasticsearch_trash` (
 `id` int(11) NOT NULL,
 `ctime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
 `mtime` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

10.1.6.5. 最后修改時間

需求:記錄最后一次修改時間

package cn.netkiller.api.domain.elasticsearch;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table
public class ElasticsearchTrash {
 @Id
 private int id;

 @Column(columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
 private Date lastModified;

}

產生DDL語句如下

CREATE TABLE `elasticsearch_trash` (
 `id` int(11) NOT NULL,
 `ctime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 

以上就是Spring data 定義默認時間與日期的實例,如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

您可能感興趣的文章:
  • Spring Boot中使用Spring-data-jpa實現數據庫增刪查改
  • Spring Data JPA實現動態查詢的兩種方法
  • Spring Data JPA 簡單查詢--方法定義規則(詳解)
  • 基于SpringMVC+Bootstrap+DataTables實現表格服務端分頁、模糊查詢
  • SpringBoot集成Spring Data JPA及讀寫分離
  • springboot整合spring-data-redis遇到的坑

標簽:內江 黃石 廣州 貸款邀約 大連 銅川 南京 樂山

巨人網絡通訊聲明:本文標題《詳解Spring data 定義默認時間與日期的實例》,本文關鍵詞  詳解,Spring,data,定義,默認,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解Spring data 定義默認時間與日期的實例》相關的同類信息!
  • 本頁收集關于詳解Spring data 定義默認時間與日期的實例的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 长顺县| 同德县| 林口县| 常宁市| 南丰县| 汉中市| 精河县| 洛南县| 宿松县| 本溪市| 苏州市| 秦皇岛市| 苏尼特右旗| 简阳市| 华容县| 平顺县| 乃东县| 大石桥市| 棋牌| 徐水县| 临泉县| 巴塘县| 通许县| 西藏| 富蕴县| 涿州市| 清水河县| 宜丰县| 大埔县| 新兴县| 乐亭县| 孝义市| 綦江县| 诸暨市| 环江| 定日县| 聂拉木县| 福泉市| 阜康市| 晋中市| 灌南县|