相关疑难解决方法(0)

错误:列的类型为 json,但表达式的类型为 Hibernate 中不同的字符

我需要使用 spring 数据 jpa 在 postgres 中将实体类的两列映射为 json。在阅读了多个 stackoverflow 帖子和 baeldung 帖子后,

如何使用 JPA 将映射 JSON 列映射到 Java 对象

https://www.baeldung.com/hibernate-persist-json-object

我做了如下配置。但是,我面临错误“错误:列“标题”的类型为 json,但表达式的类型为不同的字符

请提供一些解决此问题的指针。

我有一个实体类如下

@Entity
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class Task {
    @Id
    @GeneratedValue(strategy = IDENTITY)
    private Integer id;
    
    private String url;
    private String httpMethod;

    @Convert(converter = HashMapConverter.class)
    @Column(columnDefinition = "json")
    private Map<String, String> headers;

    @Convert(converter = HashMapConverter.class)
    @Column(columnDefinition = "json")
    private Map<String, String> urlVariables;
}
Run Code Online (Sandbox Code Playgroud)

我创建了一个测试类来测试实体是否持久化。在运行这个 junit 时,下面的测试用例失败,错误如下

在此处输入图片说明

@SpringBootTest
class TaskRepositoryTest {

    private static Task randomTask …
Run Code Online (Sandbox Code Playgroud)

postgresql json liquibase spring-data-jpa spring-boot

9
推荐指数
4
解决办法
3721
查看次数

Postgres JSONB 无法升级到 SpringBoot 版本 3.0

我有一个 Kotlin SpringBoot 项目。这是一个相对简单的 API,可将数据保存到 Postgres JsonB 数据库。我@TypeDef在实体类上使用该注释,但升级到此注释后SpringBoot Version 3.0不再hibernate-core:6.1.7.Final 可用。

这是我的实体类::

import com.vladmihalcea.hibernate.type.json.JsonBinaryType
import jakarta.persistence.Column
import jakarta.persistence.Entity
import jakarta.persistence.Id
import jakarta.persistence.Table
import org.hibernate.annotations.Type
import org.hibernate.annotations.TypeDef // not available with latest hibernate-core

import java.io.Serializable
import java.security.SecureRandom
import kotlin.math.abs

@Entity
@Table(name = "myTable")
@TypeDef(name = "jsonb", typeClass = JsonBinaryType::class) // not available :(
data class RecommendationEntity(
  @Id
  open var id: Long = abs(SecureRandom().nextInt().toLong()),
  @Type(type = "jsonb")
  @Column(columnDefinition = "jsonb")
  var data: MyModel
)

data class MyModel( …
Run Code Online (Sandbox Code Playgroud)

postgresql upgrade kotlin spring-boot jsonb

1
推荐指数
1
解决办法
4458
查看次数