Joda.time.DateTime в pojo с поддержкой гибернации

hibernate - 3.6.0.Final joda - 1.4 как поддерживать прямой joda.DateTime в pojo для спящего режима

поэтому может быть session.saveOrUpdate(rateCodeId);

POJO

public class RateCodeId implements java.io.Serializable {

    private int roomId;
    private org.joda.Time.DateTime date;
}

hbm.xml

 <key-property name="date" type="org.joda.time.contrib.hibernate.PersistentDateTime">
        <column length="10" name="date" />
 </key-property>

ОШИБКА:

org.hibernate.MappingException: возможно не определять тип для: org.joda.time.contrib.hibernate.PersistentDateTime

И без "type =" ОШИБКА

java.lang.ClassCastException: org.joda.time.DateTime не может быть добавлено к java.util.Date

Ответ 1

Возможно, у вас нет Joda-Time Hibernate в пути к классам. Это необходимо для type="org.joda.time.contrib.hibernate.PersistentDateTime".

UPDATE:

Похоже, что поддержка Hoda Hyperernate Joda-time в настоящее время не работает с Hibernate 3.6, см. PersistentDateTime не работает в спящем режиме 3.6 - ID: 3090209 и Перекомпилируйте Hibernate Joda-Time, чтобы он работал с Hibernate 3.6.

Вместо этого можно использовать Проект типа пользователя (атрибут type становится type="org.jadira.usertype.dateandtime.joda.PersistentDateTime").