【问题标题】:Hibernate envers does not recognize custom types from hibernate-types-52Hibernate envers 无法识别来自 hibernate-types-52 的自定义类型
【发布时间】:2020-10-20 03:32:25
【问题描述】:

Hibernate 环境无法识别使用 hibernate-types 库中的 @TypeDef 注释创建的自定义类型。

为 MyEntity 生成的审核表使用 varchar 类型作为状态字段(实体表中的枚举状态类型)。将“字符串”字段添加到实体后,出现以下异常:

org.hibernate.MappingException:无法确定类型:字符串数组,在表:_aud,列...

@Entity
@Audited
@TypeDefs(
    TypeDef(name = "pgsql_enum", typeClass = PostgreSQLEnumType::class),
    TypeDef(name = "string_array", typeClass = StringArrayType::class)
)    
class MyEntity {

@Enumerated(EnumType.STRING)
@Column(columnDefinition = "status")
@Type(type = "pgsql_enum")
var status: Status? = null

@Type(type = "string_array")
private var strings: MutableSet<String> = mutableSetOf()

}

我已经尝试使用 package-info.java 文件在包级别定义 @TypeDefs,但这没有帮助。

【问题讨论】:

    标签: hibernate spring-data-jpa hibernate-envers hibernate-types


    【解决方案1】:

    尝试在 @Type 和 @TypeDef 中将“string_array”更改为“string-array”。

    我在尝试使用 JsonBinaryType 时遇到了这个问题,并且遇到了同样的异常。我将@TypeDef 中的名称设置为“json”,但无论出于何种原因,Envers 都在寻找一个名为“jsonb”的名称。在您的情况下,Envers 正在寻找一种名为“字符串数组”的类型。

    【讨论】:

      猜你喜欢
      • 2021-11-17
      • 2020-11-09
      • 2018-10-05
      • 2018-08-18
      • 1970-01-01
      • 1970-01-01
      • 2020-11-17
      • 2022-12-03
      • 2018-06-27
      相关资源
      最近更新 更多