java类中的字段如下所示:
private LocalDateTime updateTime;
然而,Hibernate将它存储在数据库中,如下所示:
(output of "select update_time from my_table;")
ac ed 00 05 73 72 00 1b 6f 72 67 2e 6a 6f 64 61 2e 74 69 6d 65 2e 4c 6f 63 61 6c 44 61 74 65 54 69 6d 65 fc 45 53 6c f5 a5 87 10 02 00 02 4a 00 0c 69 4c 6f 63 61 6c 4d 69 6c 6c 69 73 4c 00 0b 69 43 68 72 6f 6e 6f 6c 6f 67 79 74 00 1a 4c 6f 72 67 2f 6a 6f 64 61 2f 74 69 6d 65 2f 43 68 72 6f 6e 6f 6c 6f 67 79 3b 78 70 00 00 01 42 09 8e 35 21 73 72 00 27 6f 72 67 2e 6a 6f 64 61 2e 74 69 6d 65 2e 63 68 72 6f 6e 6f 2e 49 53 4f 43 68 72 6f 6e 6f 6c 6f 67 79 24 53 74 75 62 a9 c8 11 66 71 37 50 27 03 00 00 78 70 73 72 00 1f 6f 72 67 2e 6a 6f 64 61 2e 74 69 6d 65 2e 44 61 74 65 54 69 6d 65 5a 6f 6e 65 24 53 74 75 62 a6 2f 01 9a 7c 32 1a e3 03 00 00 78 70 77 05 00 03 55 54 43 78 78
现在我们决定将java代码更改为:
@Type(type = "org.jadira.usertype.dateandtime.joda.PersistentLocalDateTime")
private LocalDateTime updateTime;
使数据库中的值看起来像
(output of "select update_time from my_table;")
2013-12-18 00:00:00.0
但是,数据库表在此列中已有一些值。 我们现在如何将update_time的数据类型转换为时间戳,以便正确处理现有值?
使用的数据库版本和依赖关系如下: 数据库版本:
psql --version
psql (EnterpriseDB) 9.1.6.10
hibernate的mvn依赖项:
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.0.1.Final</version>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.2.0.Final</version>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.0.1.Final</version>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-jpamodelgen</artifactId>
<version>1.2.0.Final</version>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
<version>1.0.1.Final</version>
真的卡在这里。不知道如何实现这一目标?这里的任何帮助都非常感谢。