Spring data 가 기본 시간 과 날 짜 를 정의 하 는 인 스 턴 스 를 자세히 설명 합 니 다.

Spring data 가 기본 시간 과 날 짜 를 정의 하 는 인 스 턴 스 를 자세히 설명 합 니 다.
선언:
수 요 는 다음 과 같다.
1.생 성 시간 과 업데이트 시간 은 데이터베이스 에서 만 발생 할 수 있 고 실체 클래스 에서 만 발생 할 수 없습니다.각 노드 의 시간/시간 대가 항상 있 는 것 이 아니 기 때 문 입 니 다.또한 사용자 정의 시간 을 인위적으로 삽입 하 는 것 을 방지 합 니 다.
2.기록 을 삽입 할 때 기본 시간 을 만 듭 니 다.생 성 시간 이 비어 있 으 면 안 됩 니 다.시간 이 삽입 되면 나중에 실체 클래스 에서 수정 할 수 없습니다.
 3.기록 생 성 후 업데이트 로그 필드 는 기본적으로 null 로 기록 이 수정 되 지 않 았 음 을 표시 합 니 다.데이터 가 수정 되면 수정 날짜 필드 는 마지막 수정 시간 을 기록 합 니 다.
4.심지어 트리거 를 통 해 하나의 history 표를 실현 하여 데이터 의 역사 수정 을 기록 할 수 있 습 니 다.상세 한 것 은 작가 의 다른 전자 책 인 데이터 베이스 디자인 관련 장 을 참고 하 십시오.
10.1.6.기본 시간 규칙
10.1.6.1. CreatedDate
Spring 은 import org.springframework.data.annotation.Created Date 를 제공 합 니 다.
그러나 이것들 은 실체 류 에 만 작용 할 수 있다.

@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 표를 실현 하여 데이터 의 역사 수정 을 기록 할 수 있 습 니 다.상세 한 것 은 작가 의 다른 전자 책 인 데이터 베이스 디자인 관련 장 을 참고 하 십시오.

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 가 기본 시간 과 날 짜 를 정의 하 는 인 스 턴 스 입 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남기 거나 본 사이트 커 뮤 니 티 에 가서 토론 을 하 십시오.읽 어 주 셔 서 감사합니다. 도움 이 되 셨 으 면 좋 겠 습 니 다.본 사이트 에 대한 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기