将 hibernate envers 与 PostgreSQLRangeType 之类的类型一起使用有可能吗?有没有不重构遗留代码的简单方法?

问题描述

想知道是否有关于这个话题的新进展?

在尝试将 hibernate-types-52-library 类型与 Envers 一起使用时,我正面临着可能处于类似情况的大多数人所面临的问题……,此错误

Invocation of init method Failed; nested exception is org.hibernate.MappingException: Type not supported for auditing: com.vladmihalcea.hibernate.type.range.PostgresqlRangeType,on entity ...

我尝试创建自定义方言,例如:

public class CustomPostgresDialect extends Postgresql10Dialect {

    public CustomPostgresDialect() {
        super();
        this.registerHibernateType(Types.OTHER,PostgresqlRangeType.class.getName());
        this.registerColumnType(1111,"range");
    }
}

我在 application.yml(源代码和测试)中都有这个:

  jpa:
    database-platform: <path>.CustomPostgresDialect
    show-sql: false
    open-in-view: false
    properties:
      hibernate:
        dialect: <path>.CustomPostgresDialect
@Entity
@TypeDef(name="range",typeClass = PostgresqlRangeType.class,defaultForType = Range.class)
public class Spec extends TemporalTable implements Serializable {

    @Type(type = "range")
    private Range<Integer> range;
}
@Entity
@TypeDef(name="range",defaultForType = Range.class)
public class Spec extends TemporalTable implements Serializable {

    @Type(type = "range")
    private Range<Integer> range;
}

如果这不起作用,是否可以将 [0,15) 保存为 varchar,然后将其转换为范围?这样 Hbn envers 就不会抱怨了。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...