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 가 기본 시간 과 날 짜 를 정의 하 는 인 스 턴 스 입 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남기 거나 본 사이트 커 뮤 니 티 에 가서 토론 을 하 십시오.읽 어 주 셔 서 감사합니다. 도움 이 되 셨 으 면 좋 겠 습 니 다.본 사이트 에 대한 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[MeU] Hashtag 기능 개발➡️ 기존 Tag 테이블에 존재하지 않는 해시태그라면 Tag , tagPostMapping 테이블에 모두 추가 ➡️ 기존에 존재하는 해시태그라면, tagPostMapping 테이블에만 추가 이후에 개발할 태그 기반 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.