Extended Hibernate Anotation @CreationTimestamp, @upDateTimestamp mendukung jenis waktu baru di java8
Versi Hibernate: 4.3.5.Final
Salinan kode adalah sebagai berikut:
paket com.hibernate.annotation;
impor org.hibernate.hibernateException;
impor org.hibernate.tuple.AnnotationValueGeneration;
impor org.hibernate.tuple.valueGenerator;
impor java.lang.annotation.annotation;
impor java.sql.time;
impor java.sql.timestamp;
impor java.time.localDate;
impor java.time.localdateTime;
impor java.time.localtime;
impor java.util.calendar;
impor java.util.date;
/**
* Dibuat dengan ide IntelliJ.
* Pengguna: Zhonggang
* Tanggal: 14-4-16
* Waktu: 11:40
* <p/>
* Mendukung paket waktu baru untuk Java 8
*
* @see java.time.localdateTime
* @see java.time.localDate
* @see java.time.localtime
*/
Kelas abstrak publik AbstracttimeGeneration <A Extends Annotation> mengimplementasikan anotasivalueGeneration <a> {
ValueGenerator yang Dilindungi <?> Generator;
@Mengesampingkan
public void menginisialisasi (anotasi, kelas <?> PropertyType) {
if (localdateTime.class.isassignableFrom (propertieType)) {
generator = (sesi, pemilik) -> localDateTime.now ();
} lain if (localdate.class.isassignableFrom (propertieType)) {
generator = (sesi, pemilik) -> localdate.now ();
} lain if (localtime.class.isassignableFrom (propertieType)) {
generator = (sesi, pemilik) -> localtime.now ();
} else if (java.sql.date.class.isassignableFrom (PropertyType)) {
generator = (sesi, pemilik) -> java.sql.date baru (tanggal baru (). getTime ());
} lain if (time.class.isassignableFrom (propertieType)) {
generator = (sesi, pemilik) -> waktu baru (tanggal baru (). gettime ());
} lain if (timestamp.class.isassignableFrom (propertieType)) {
generator = (sesi, pemilik) -> stempel waktu baru (tanggal baru (). gettime ());
} lain if (date.class.isassignableFrom (propertieType)) {
generator = (sesi, pemilik) -> tanggal baru ();
} lain if (calendar.class.isassignableFrom (propertieType)) {
generator = (sesi, pemilik) -> {
Kalender kalender = calendar.getInstance ();
Calendar.Settime (tanggal baru ());
Kalender Kembali;
};
} kalau tidak {
Lempar HibernateException baru ("Jenis Properti yang Tidak Didukung untuk Anotasi Generator" + Annotation.getClass (). GetSImplename ());
}
}
@Mengesampingkan
Public ValueGenerator <?> getValueGenerator () {
generator kembali;
}
@Mengesampingkan
Public Boolean ReferenceColumnInsql () {
mengembalikan false;
}
@Mengesampingkan
string publik getDatabasegeneratedReferencedColumnValue () {
kembali nol;
}
}