joda.time.DateTime в pojo с поддержкой гибернации - PullRequest
11 голосов
/ 21 февраля 2011

hibernate - 3.6.0.Final joda - 1.4, как поддерживать прямую joda. DateTime в pojo для hibernate

, поэтому может быть 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 Ответ

16 голосов
/ 21 февраля 2011

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

ОБНОВЛЕНИЕ:

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

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

...