当我希望 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/