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

时间:2015-11-14 23:37:45

标签: java json spring hibernate postgresql

我在将Java对象映射到正在进行的JSON列时遇到一些麻烦,我希望H2将其存储为clob(因为没有json类型)

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

对于sprint数据休息,最好使用@Converter,因此我无法使用@Type / UserTypes进行休眠。

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

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

1 个答案:

答案 0 :(得分:0)


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} ]"}
}