gpt4 book ai didi

java - 在 JPA 中使用 LocalDateTime 和 @Version 注释

转载 作者:行者123 更新时间:2023-12-01 21:30:42 24 4
gpt4 key购买 nike

我的 Entity 类中有以下字段:

@Version
@Column(name = "updated")
private LocalDateTime lastUpdated;

@Column(name = "created")
private LocalDateTime created;

created 字段工作正常,因为我实现了一个从 LocalDateTimeTimestampAttributeConverter

部署到容器时,lastUpdated 字段出现以下错误:

java.lang.ClassCastException: org.hibernate.type.descriptor.converter.AttributeConverterTypeAdapter cannot be cast to org.hibernate.type.VersionType

我知道可以通过使用 Timestamp 作为 lastUpdated 的变量类型而不是 LocalDateTime 来解决这个问题。

我想知道是否可以覆盖 @Version 注释行为以接受 LocalDateTime 作为变量类型。

最佳答案

尝试hibernate-java8用于支持 java 8 特定数据类型的依赖项。

<!-- http://mvnrepository.com/artifact/org.hibernate/hibernate-java8 -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-java8</artifactId>
<version>5.1.0.Final</version>
</dependency>

以下来自 hibernate 网站

支持使用 Java8 特定数据类型,例如域模型中的任何 JSR 310 日期/时间类型。

VersionType<Instant>作为其中的一部分添加,因此您可以使用它来满足您的要求

更新1

检查LocalDateTime上的版本注释与 hibernate-java8依赖 H2 DB,它起作用了

关于java - 在 JPA 中使用 LocalDateTime 和 @Version 注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37483632/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com