我有一个小型应用程序(spring 4.0、JPA 2.1、hibernate 5.0.2),并且一直在使用“旧”
java.util.Date*
类以及java.sql.Date*
。现在我想使用 java.time
来代替,并了解到它可以与 AttributeConverter
一起使用。
不幸的是这似乎不起作用。当我尝试使用时间戳读取数据库对象时(doa 相当于 java.time.localdatetime
),我得到了一个异常。
尽管有注释,转换器似乎根本没有被使用。我只有一个 applicationContext.xml
并且没有 persistence.xml 那么我在哪里告诉 jpa 使用转换器(如果注释不够)?
我怎样才能看到 AttributeConverter
被 JPA 拾取了?
提前致谢, 约翰。
@Converter 在 JPA2.1 中可用。
尝试更改您的依赖配置:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.3.5.Final</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>1.7.2.RELEASE</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.1-api</artifactId>
<version>1.0.0.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.3.5.Final</version>
</dependency>