2015-11-16 26 views
5

Sto migrando a Hibernate 5.0.3.Final da 3. In 3.x Sto usando joda-time per persistere LocalDateTime nel DB oracle. Ora vedo che Hibernate 5 non ha supporto per joda-time. Per favore fatemi sapere quale sarebbe l'alternativa migliore per questo?Migrazione in Hibernate 5 da 3

Ecco un esempio di codice.

import org.joda.time.DateTime; 
import org.joda.time.DateTimeZone; 
import org.joda.time.LocalDateTime; 

public class ComponentHistory { 

    @Column(name = EntityConstants.CREATED_BY_COLUMN_NAME) 
    private String createdBy; 

    @Column(name = EntityConstants.CREATED_DATE_COLUMN_NAME) 
    @Type(type = "org.joda.time.contrib.hibernate.PersistentLocalDateTime") 
    private LocalDateTime createdDate; 

    @Column(name = EntityConstants.UPDATED_BY_COLUMN_NAME) 
    private String updatedBy; 

    @Column(name = EntityConstants.UPDATED_DATE_COLUMN_NAME) 
    @Type(type = "org.joda.time.contrib.hibernate.PersistentLocalDateTime") 
    private LocalDateTime updatedDate; 
+0

http://www.bartkummel.net/2015/04/migrating-jodatime-to-java-time/ –

risposta

3

ho migrato da Hibernate 4-5 così forse può essere adatto per voi, quello che ho fatto è stato rimuovere tutte le dipendenze Joda Time e sostituire le classi di nuova Java Data Api, come questo.

From Time Joda

@Type(type="org.jadira.usertype.dateandtime.joda.PersistentLocalDateTime") 
private LocalDateTime startDate; 

@Type(type="org.jadira.usertype.dateandtime.joda.PersistentDateTime") 
private DateTime creationDate; 

Per Java 8 Data

@Type(type="org.hibernate.type.LocalDateTimeType") 
private java.time.LocalDateTime startDate; 

@Type(type="org.hibernate.type.ZonedDateTimeType") 
private java.time.ZonedDateTime creationDate; 

dipendenze Rimuovere Maven se lo avete

<dependency> 
     <groupId>joda-time</groupId> 
     <artifactId>joda-time-hibernate</artifactId> 
     <version>1.3</version> 
    </dependency> 

    <dependency> 
     <groupId>joda-time</groupId> 
     <artifactId>joda-time</artifactId> 
     <version>2.3</version> 
    </dependency> 

    <dependency> 
     <groupId>org.jadira.usertype</groupId> 
     <artifactId>usertype.core</artifactId> 
     <version>3.1.0.CR8</version> 
    </dependency> 

e aggiungere hibernate-java8

<dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-java8</artifactId> 
     <version>5.0.4.Final</version> 
    </dependency> 

È possibile visualizzare ulteriori dettagli su come convertire tipo Joda Time to Java Data Ora http://blog.joda.org/2014/11/converting-from-joda-time-to-javatime.html

+0

Sostituzione della Le annotazioni joda.time @type con quelle jadira sembrano molto meno invasive. –