2015-11-16 5 views
5

Ich bin auf Hibernate 5.0.3.Final von 3 migrieren. In 3.x verwende ich joda-Zeit, um LocalDateTime in Oracle DB persistent. Jetzt sehe ich, dass Hibernate 5 keine Unterstützung für Joda-Zeit hat. Bitte lassen Sie mich wissen, was wäre die beste Alternative dafür?In den Ruhezustand migrieren 5 von 3

Hier ist Codebeispiel.

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/ –

Antwort

3

ich aus dem Ruhezustand 4 bis 5 so vielleicht migriert für Sie geeignet sein, was ich tat, war, alle Joda Zeitabhängigkeiten zu entfernen und die Klassen, um neuen Java Date Api, wie diese zu ersetzen.

Von Joda Zeit

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

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

Um 8 Java Date

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

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

Entfernen Maven Abhängigkeiten, wenn Sie es

<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> 

haben und fügen Sie Hibernate-java8

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

können Sie weitere Details sehen, wie Joda Time Type auf Java Datum Zeit http://blog.joda.org/2014/11/converting-from-joda-time-to-javatime.html

+0

austauschen konvertieren joda.time @ type Annotationen mit den Jadira-Einträgen scheint viel weniger invasiv. –