2015-11-16 35 views
5

Przejmuję do wersji Hibernate 5.0.3.Final z 3. W 3.x używam joda-time do utrwalania LocalDateTime w Oracle DB. Teraz widzę, że hibernacja 5 nie ma wsparcia dla joda-time. Proszę dać mi znać, jaka byłaby najlepsza alternatywa dla niego?Migrowanie do trybu hibernacji 5 z 3

Oto przykład kodu.

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

Odpowiedz

3

I migracji z Hibernate 4 do 5 więc może być odpowiedni dla ciebie, co zrobiłem było usunąć wszystkie zależności Joda czas i wymienić na nowe klasy Java Data API, tak.

od czasu Joda

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

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

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; 

Usuń Maven zależności czy masz to

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

i dodać hibernacji-java8

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

można zobaczyć więcej szczegółów o tym, jak konwertować typ Joda Time Java Data Czas http://blog.joda.org/2014/11/converting-from-joda-time-to-javatime.html

+0

Wymiana Adnotacje typu joda.time przy użyciu jadiry wydają się dużo mniej inwazyjne. –