2016-06-01 79 views
1

我在尋找this page爲了在我的Hibernate映射中得到一個替代類比java.util.DateDATE列。映射日期,沒有時間,在喬達/休眠

我發現沒有一個非過時的類型映射到SQL中的DATE列。

我想問問什麼是映射到SQL的Joda類型DATE

附加信息:我們正在考慮喬達,因爲我們有使用java.util.Date代表沒有時間的日期的問題,因爲如果客戶端和服務器的時區不匹配,可能會提前一天。現在有很多問題/問題。準確地說:如果客戶端處於正時區,並且服務器會說UTC或負時區。

+0

根據這個http://stackoverflow.com/questions/8307593/joda-time-hibernate-persistentyearmonthday-deprecated,你想要PersistentLocalDate。 – jtahlborn

回答

1

由於我使用EclipseLink進行持久化,因此我以前從未使用過Joda-Time-Hibernate。

相反,要映射Joda類型,我總是使用標準JPA @Convert將它們映射到數據庫。

例如,一個簡單的,直接的轉換器看起來是這樣的:

@Converter 
public class LocalDateToDateConverter implements AttributeConverter<LocalDate, Date> 
{ 
    @Override 
    public Date convertToDatabaseColumn(LocalDate attribute) 
    { 
     return attribute == null ? null : new Date(attribute.toDate().getTime()); 
    } 

    @Override 
    public LocalDate convertToEntityAttribute(Date dbData) 
    { 
     return dbData == null ? null : LocalDate.fromDateFields(dbData); 
    } 

} 

如果你確實需要的列是一個DATE,有沒有別的辦法,你可以試試看。