Erweiterte Hibernate -Annotation @creationTimestamp, @UpDATETIMESTAMP unterstützt neue Zeittypen in Java8
Hibernate -Version: 4.3.5.Final
Die Codekopie lautet wie folgt:
Paket com.hiberNate.Annotation;
import org.hibernate.hibernateException;
import org.hibernate.tuple.AnnotationValugeneration;
import org.hibernate.tuple.Valugenerator;
importieren java.lang.annotation.annotation;
importieren java.sql.time;
importieren java.sql.timestamp;
import Java.time.localdate;
import Java.time.localdatetime;
Java.time.LocalTime importieren;
Import Java.util.Calendar;
import Java.util.date;
/**
* Mit der Intellij -Idee geschaffen.
* Benutzer: Zhonggang
* Datum: 14-4-16
* Zeit: 11:40 Uhr
* <p/>
* Unterstützen Sie neue Zeitpakete für Java 8
*
* @see java.time.localdatetime
* @see java.time.localdate
* @see java.time.localtime
*/
public abstract class AbstractTimeGeneration <a erweitert Annotation> Implementiert AnnotationValugeneration <a> {
Protected ValueGenerator <?> Generator;
@Override
public void initialize (eine Annotation, Klasse <?> PropertyType) {
if (localDatetime.class.isagnableFrom (PropertyType)) {
Generator = (Sitzung, Eigentümer) -> localDateTime.now ();
} else if (localDate.class.isSignableFrom (PropertyType)) {
Generator = (Sitzung, Eigentümer) -> localDate.now ();
} else if (localtime.class.IssidesignableFrom (PropertyType)) {
Generator = (Sitzung, Eigentümer) -> localtime.now ();
} else if (java.sql.date.class.IssidesignableFrom (PropertyType)) {
Generator = (Sitzung, Eigentümer) -> New Java.sql.Date (neuer Datum (). GetTime ());
} else if (time.class.IssidesignableFrom (PropertyType)) {
Generator = (Sitzung, Eigentümer) -> Neue Zeit (neues Datum (). GetTime ());
} else if (timestamp.class.IssidesignableFrom (PropertyType)) {
Generator = (Sitzung, Eigentümer) -> Neue Zeitstempel (neues Datum (). GetTime ());
} else if (date.class.issidesignableFrom (PropertyType)) {
Generator = (Sitzung, Eigentümer) -> neues Datum ();
} else if (calendar.class.IssidesignableFrom (PropertyType)) {
Generator = (Sitzung, Eigentümer) -> {
Calendar Calendar = Calendar.getInstance ();
Calendar.Settime (neues Datum ());
Rückgabekalender;
};
} anders {
Neue HibernateException werfen ("nicht unterstützter Eigenschaftstyp für Generatorannotation" + Annotation.getClass (). GetImplename ());
}
}
@Override
public ValueGenerator <?> GetValuGenerator () {
Rückkehrgenerator;
}
@Override
public boolean referencolumninsql () {
false zurückgeben;
}
@Override
public String getDatabaseGeneratedReferenceColumnValue () {
null zurückkehren;
}
}