将以下代码从 quarkus 2.0.x 升级到 3.0.x 导致该方法被弃用:registerColumnType。如何重构此代码,使其适用于 3.0?
public class H2CustomDialect extends H2Dialect {
public H2CustomDialect() {
super();
registerColumnType(Types.BINARY, "varbinary");
}
}
首先,不要升级到3.0,而是升级到3.3。 3.2 如果必须的话。但3.0不再维护了。
其次,你所做的事情很奇怪。基本上,您是在告诉 Hibernate ORM 在需要使用 BINARY 的任何地方都使用 VARBINARY 类型,即使您可以只是告诉它将 VARBINARY 分配给应用程序中拥有的任何 Java 类型或属性。请参阅此处了解类型映射,此处了解在 Quarkus 中配置
MetadataBuilderContributor
以注册您的类型映射。
最后,如果你真的必须这样做,这样的事情可能会起作用:
public class H2CustomDialect extends H2Dialect {
public H2CustomDialect() {
super();
}
@Override
protected void registerColumnTypes(TypeContributions typeContributions, ServiceRegistry serviceRegistry) {
super.registerColumnTypes( typeContributions, serviceRegistry );
ddlTypeRegistry.addDescriptor( Types.BINARY, ddlTypeRegistry.getDescriptor( Types.VARBINARY ) );
}
}
不过,我真的不认为这是一个好主意。