java - 如何使用 Hibernate 将 Java 对象映射到 H2 中的 clob 和 Postgres 中的 json

标签 java json spring hibernate postgresql

当我希望 H2 将其存储为 clob(因为没有 json 类型)时,我在将我的 java 对象映射到 JSON 列时遇到了一些问题

我将 Hibernate 与 ddl-auto 结合使用,并希望它创建正确的列类型。此外,Spring-data-rest 应该能够映射对象。

对于 sprint 数据 rest,最好使用 @Converter,因此我不能将 @Type/UserTypes 用于 hibernate .

我有一个工作解决方案,其中包含 UserType 和 2 种自定义方言(一种用于 Postgres,一种用于 H2)。但是我无法使用转换器解决问题。似乎 Hibernate 只知道转换后的类型,即 String 并生成 varchar 列。但是我无法将所有字符串映射到 Postgres 的 JSON ...

我有点卡在这里。所以我很乐意尝试任何提示。

最佳答案


import javax.annotation.Nonnull
import javax.persistence.*

@Entity
class AdhocDocument {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    Long id

    String lookupKey // use a guid here
    String loggingKey // use a guid here

    @Lob
    @Column(name = "payload", columnDefinition="BLOB")
    private byte[] payload

    String toString() { "[${lookupKey}, ${loggingKey} ]"}
}

关于java - 如何使用 Hibernate 将 Java 对象映射到 H2 中的 clob 和 Postgres 中的 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33714662/

相关文章:

java - 将整数数组传递给使用通用元素数组的方法?

java - 非技术问题 : Knowledge > experience or experience > knowledge?

json - 如何将 NSArray 存储在 Userdefaults 中?

java - 如何在 thymeleaf 中使用 math.max 来查找最大数字?

java - 导出的 jar 文件缺少对资源的访问

java - 在内存中加载文本文件的最快/最干净的方法

java - 如何使用 Feign 框架添加 JSON 形式的 URL 参数?

mysql - 如何在mysql中返回json字符串的值

java - spring框架动态日志记录

java - JSON NO_REFERENCES