麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JSP > 正文

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

2024-09-05 00:23:18
字體:
來源:轉載
供稿:網友

詳解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@Tablepublic 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@Tablepublic 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@Tablepublic 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 定義默認時間與日期的實例,如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


注:相關教程知識閱讀請移步到JSP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 密室逃脱第一季免费观看完整在线 | 日韩视频不卡 | 国产在线精品91 | 精品69人人人人 | 精品国产乱码一区二区三区四区 | 国产精品一区二区羞羞答答 | 日韩毛片网 | 成人啪啪色婷婷久 | 1024亚洲天堂 | 亚洲国产精久久久久久久 | 免费观看国产精品视频 | 成人免费av在线播放 | 国产剧情在线观看一区二区 | 免费国产网站 | 色的综合| 国产精品资源手机在线播放 | 色猫av| 精品成人网 | 国产羞羞视频 | 久久不雅视频 | 麻豆蜜桃在线观看 | 国产精品1区 | 国产亚洲精品久久久久久久久久 | 色就色 综合偷拍区91网 | 性欧美极品xxxx欧美一区二区 | www.成人免费 | 国产区二区 | 国产一级免费在线视频 | 少妇激情视频 | 国产精品看片 | 精品一区二区免费视频视频 | 国产三级a三级三级 | 毛片免费看电影 | 91精品国产综合久久婷婷香 | 真人一级毛片免费 | 性猛交ⅹxxx乱巴西 欧美日韩1区2区3区 | 欧美黄色片免费看 | 少妇一级淫片免费放正片 | 亚洲va久久久噜噜噜久牛牛影视 | 久久久久电影网站 | 国产分类视频 |