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"
).