gpt4 book ai didi

json - 为什么我的转换列被 JpaAttributeTypeInspection 标记为错误消息 "' Basic' attribute type should not be a map”?

转载 作者:行者123 更新时间:2023-12-03 13:40:05 25 4
gpt4 key购买 nike

我试图通过 JPA 和 Spring 将一些 JSON 作为字符串存储在列中,并且正在关注 baeldung tutorial .我的代码是这样的:

    @Column
@Convert(converter = MyEntityExtentionConverter.class)
private Map<String, Object> myEntityExtention;
MyEntityExtentionConverterjavax.persistence.AttributeConverter<Map<String, Object>, String> 的实现使用 Jackson ObjectMapper 来回转换字符串.

根据提到的教程,这应该是它,但是现在我收到一个错误

'Basic' attribute type should not be a map



理论上我可以通过添加 @SuppressWarnings("JpaAttributeTypeInspection") 来禁用它注释,但这感觉就像忽略而不是解决错误。我在这里做错了什么?

最佳答案

您必须使用@Type 注释 Prop “myEntityExtention”但是 不能同时添加@Type 和@Convert。
如您所见 in this tutorial 您必须定义 json 类型 在您的实体顶部:

@Entity
@Table(name = "some_table_name")
@TypeDef(name = "json", typeClass = JsonStringType.class)
public class CustomEntity {
然后添加 @类型 注释代替 @Convert :
@Type( type = "json" )
private Map<String, Object> myEntityExtention;
确保添加所有正确的依赖项/版本。
IE。我正在使用 hibernate 5.4,所以我的依赖项是:
<!-- Hibernate ORM core version 5.4.21.Final (inherited from spring-boot 2.3.4)-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.4.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-hibernate5</artifactId>
<version>2.8.4</version>
</dependency>
<dependency>
<groupId>com.vladmihalcea</groupId>
<artifactId>hibernate-types-52</artifactId>
<!--for hibernate >= 5.2-->
<version>2.10.2</version>
</dependency>
</dependencies>

关于json - 为什么我的转换列被 JpaAttributeTypeInspection 标记为错误消息 "' Basic' attribute type should not be a map”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62043600/

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