Joda DateTime hibernate映射弹簧形式

zam*_*zam 1 sql spring datetime hibernate jodatime

我正在尝试将DateTime对象映射到TimeStamp SQL列.

import org.springframework.format.annotation.DateTimeFormat;
...

    @Column
    @Type(type="org.joda.time.contrib.hibernate.PersistentDateTime")
    @DateTimeFormat(style="SS")
    private DateTime dateSmoked;
Run Code Online (Sandbox Code Playgroud)

我正在使用Spring表单标签让用户根据@DateTimeFormat(style ="SS")输入"mm/dd/YYYY HR:MIN AM/PM"类型的日期输入.我已经导入了joda-time-hibernate包和所有其他必需的包

当我提交表单时,我收到以下错误:org.joda.time.contrib.hibernate.PersistentDateTime.nullSafeSet(Ljava/sql/PreparedStatement; Ljava/lang/Object; ILorg/hibernate/engine/spi/SessionImplementor;)V

很清楚我做错了什么.有人能指出我正确的方向吗?

Ily*_*lya 5

看起来你正在使用Hibernate 4. +.
Joda-Time Hibernate不支持这个Hibernate版本.
您可以使用以下的usertype Jadira Framework: PersistentDateTime doc

    @Column
    @Type(type="org.jadira.usertype.dateandtime.joda.PersistentDateTime")
    @DateTimeFormat(style="SS")
    private DateTime dateSmoked;
Run Code Online (Sandbox Code Playgroud)

maven依赖

<dependency>
    <groupId>org.jadira.usertype</groupId>
    <artifactId>usertype.jodatime</artifactId>
    <version>2.0.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)