java - 使用带有 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", typeClass = PostgreSQLRangeType.class, defaultForType = Range.class)
public class Spec extends TemporalTable implements Serializable {
@Type(type = "range")
private Range<Integer> range;
}
如果这不起作用,是否可以将 [0,15) 保存为 varchar,然后将其转换为范围?这样 Hbn envers 就不会抱怨了。
解决方案
推荐阅读
- ruby-on-rails - 'books=(books)' 方法在做什么?
- debugging - unrecognizedPacketType,Actor server1.conn1.tabDescriptor1 无法识别数据包类型“附加”
- elasticsearch - 每天存储桶的文档数并应用了一些过滤器
- graphql - Graphql,仅当记录不为空时才返回结果
- android - AndroidError:程序类型已经存在:android_serialport_api.SerialPort 当我尝试从 Android Studio 生成签名 APK
- angular - 值不会在角度 6 处绑定到选择器
- amazon-web-services - Access-Control-Allow-Headers 在预检响应中不允许访问控制允许来源
- c# - Change button background color by clicking a different button on a different page
- c++ - 实现模板单例类时出现 C++ 链接错误
- java - java.lang.UnsatisfiedLinkError:java.library.path 中没有 TaSESDK