Annotation hibernate étendue @creationtimestamp, @updatetimestamp prend en charge les nouveaux types de temps dans Java8
Version Hibernate: 4.3.5
La copie de code est la suivante:
package com.hibernate.annotation;
import org.hibernate.hibernateException;
import org.hibernate.tuple.annotationValueGeneration;
import org.hibernate.tuple.valueGenerator;
import java.lang.annotation.annotation;
importer java.sql.time;
import java.sql.timestamp;
import java.time.localdate;
import java.time.localatetime;
import java.time.localtime;
import java.util.calendar;
Importer java.util.date;
/ **
* Créé avec Intellij Idea.
* Utilisateur: zhonggang
* Date: 14-4-16
* Heure: 11h40
* <p />
* Prise en charge de nouveaux packages de temps pour Java 8
*
* @see java.time.localatetime
* @see java.time.localate
* @see java.time.localtime
* /
classe abstraite de la classe AbstractTimeGeneration <a étend l'annotation> implémente AnnotationValueGeneration <a> {
Générateur de valeur de valeur protégé <?>;
@Outrepasser
public void initialize (une annotation, classe <?> PropertyType) {
if (localDatetime.class.issignableFrom (PropertyType)) {
générateur = (session, propriétaire) -> localDateTime.now ();
} else if (localDate.class.issignableFrom (PropertyType)) {
générateur = (session, propriétaire) -> localDate.Now ();
} else if (localtime.class.issignableFrom (propriétéType)) {
générateur = (session, propriétaire) -> localtime.now ();
} else if (java.sql.date.class.issignableFrom (propriétéType)) {
générateur = (session, propriétaire) -> new Java.sql.Date (new Date (). GetTime ());
} else if (time.class.issignableFrom (propriétéType)) {
générateur = (session, propriétaire) -> Nouveau heure (new Date (). GetTime ());
} else if (timestamp.class.issignableFrom (propriétéType)) {
générateur = (session, propriétaire) -> Nouveau horodatage (new Date (). GetTime ());
} else if (date.class.issignableFrom (propriétéType)) {
générateur = (session, propriétaire) -> new Date ();
} else if (calendar.class.issignablefrom (propriétéType)) {
générateur = (session, propriétaire) -> {
Calendar Calendar = calendar.getInstance ();
Calendar.SetTime (new Date ());
calendrier de retour;
};
} autre {
Jetez un nouveau HiberNateException ("Type de propriété non pris en charge pour l'annotation du générateur" + annotation.getClass (). getIMPlename ());
}
}
@Outrepasser
public ValueGenerator <?> getValueGenerator () {
générateur de retour;
}
@Outrepasser
Boolean Public ReferenceColumnInsql () {
retourne false;
}
@Outrepasser
chaîne publique getDatabaseGenerateDeferendColumnValue () {
retourner null;
}
}