2016-06-01 4 views
1

私はHibernateマッピングでの列に対してjava.util.Dateの代わりのクラスを取得するためにthis pageを探していました。Joda/Hibernateの日付をマッピングしないで

SQLのDATE列に、旧式でない型は1つもないことがわかりました。

SQL DATEにマップされているJodaタイプは何ですか?

追加情報:java.util.Dateを使用して問題が発生しているため、クライアントとサーバーのタイムゾーンが一致しないと日付が1日早くなる可能性があるため、Jodaを考慮しています。今開いている質問/問題のplentiesがあります。正確には、クライアントが正のタイムゾーンにあり、サーバーがUTCまたは負のタイムゾーンを話している場合。

+0

これによれば、PersistentLocalDateが欲しいと思っています。これはhttp://stackoverflow.com/questions/8307593/joda-time-hibernate-persistentyearmonthday-deprecatedです。 – 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する列を必要とし、他に方法はありません場合は、あなたがそれを試してみることができます。

関連する問題