확장 최대 단위 주석 @creationtimestamp, @updateTimestamp는 Java8의 새로운 시간 유형을 지원합니다.
최대 절전 모드 버전 : 4.3.5.Final
코드 사본은 다음과 같습니다.
com.hibernate.annotation 패키지;
import org.hibernate.hibernateException;
import org.hibernate.tuple.annotationValueGeneration;
org.hibernate.tuple.ValueGenerator import;
java.lang.annotation.annotation import;
java.sql.time 가져 오기;
java.sql.timestamp import;
java.time.localdate 가져 오기;
java.time.localdateTime 가져 오기;
Java.Time.localTime 가져 오기;
java.util.calendar 가져 오기;
import java.util.date;
/**
* Intellij 아이디어로 만들어졌습니다.
* 사용자 : Zhonggang
* 날짜 : 14-4-16
* 시간 : 오전 11시 40 분
* <p/>
* Java 8의 새로운 시간 패키지를 지원합니다
*
* @java.time.localdateTime
* @java.time.localdate
* @java.time.localtime
*/
공개 초록 클래스 AbstractTimeGeneration <a 확장 주석> 주석 valuegeneration <a> {
보호 된 ValueGenerator <?> 생성기;
@보수
public void 초기화 (주석, 클래스 <?> propertytype) {
if (localDateTime.class.isAssignableFrom (PropertyType)) {
Generator = (세션, 소유자) -> localDateTime.now ();
} else if (localDate.class.isAssignableFrom (PropertyType)) {
Generator = (세션, 소유자) -> localDate.now ();
} else if (localTime.class.isAssignableFrom (PropertyType)) {
Generator = (세션, 소유자) -> localtime.now ();
} else if (java.sql.date.class.isassignablefrom (propertytype)) {
generator = (세션, 소유자) -> new java.sql.date (new date (). gettime ());
} else if (time.class.isAssignableFrom (PropertyType)) {
generator = (세션, 소유자) -> new Time (new date (). gettime ());
} else if (timeStamp.class.isAssignableFrom (PropertyType)) {
Generator = (세션, 소유자) -> new Timestamp (new Date (). gettime ());
} else if (date.class.isAssignableFrom (PropertyType)) {
Generator = (세션, 소유자) -> 새 날짜 ();
} else if (calendar.class.isAssignableFrom (PropertyType)) {
Generator = (세션, 소유자) -> {
캘린더 캘린더 = calendar.getInstance ();
calendar.settime (new date ());
리턴 캘린더;
};
} 또 다른 {
새 최대 절전 모드를 던지십시오 (발전기 주석에 대한 지원되지 않은 속성 유형 " + annotation.getClass (). getSimplename ());
}
}
@보수
Public ValueGenerator <?> getValueGenerator () {
리턴 생성기;
}
@보수
public boolean referenceColumninsql () {
거짓을 반환합니다.
}
@보수
공개 문자열 getDatabaseGeneratedReferencedColumnValue () {
널 리턴;
}
}