我正在将服务从 hibernate 5 和 spring 2.7 迁移到 Spring boot 3.0 和 Hibernate 6.1。我不知道如何迁移以下代码。 我知道他们删除了 PostgreSQL10Dialect,现在我可以使用 PostgreSQLDialect。 谁能建议我如何迁移此代码?
public class PGDialect extends PostgreSQL10Dialect {
public PGDialect() {
super();
registerHibernateType(Types.ARRAY, "text[]");
registerColumnType(Types.ARRAY, "text[]");
}
}
感谢您的帮助
最终弄清楚了,现在当我设置 ddl-auto: create-drop 时,这解决了我的问题,它可以创建表。 一些说明我需要指定方言,因为 PostgreSQL 不支持数组。我们也在使用这个库: https://github.com/vladmihalcea/hypersistence-utils 这是解决方案。
public class PGDialect extends PostgreSQLDialect {
@Override
protected void registerColumnTypes(TypeContributions typeContributions, ServiceRegistry serviceRegistry) {
DdlTypeRegistry ddlTypeRegistry = typeContributions.getTypeConfiguration().getDdlyTypeRegistry();
ddlTypeRegistry.addDescriptor(new DdlTypeImpl(2003, "text[]", this));
super.registerColumnTypes(typeContributions, serviceRegistry);
}
}