是否替换了 Hibernate 已弃用的类型注释?

2022-09-03 14:54:00

升级到Hibernate 5.6.0.Final后,我发现org.hibernate.annotations.Type现在已被弃用。我在我的许多实体中都使用此注释,包括我利用Hibernate自己的NumicularBooleanType的地方:

 @Type(type = "org.hibernate.type.NumericBooleanType")
 private Boolean debug = false;

我已经搜索了Hibernate文档(迁移指南 - 其中6.0版本从 http://hibernate.org/orm/documentation/6.0/),Javadocs,论坛和网络中给了我404,以找到替代品,无济于事。

有谁知道我现在可以在Hibernate 5.6.0中做些什么来准备使用类型注释的代码以过渡到Hibernate 6?


答案 1

编辑:更改在5.6.3中恢复。不应再有任何弃用警告。


在升级到 6.0 之前,您无能为力,除非有足够多的人抱怨这个问题,说他们还原了 5.6.1 或更高版本中的更改。

Hibernate已经做出了一个不寻常的决定,在没有任何替换之前,尽早弃用这些注释。

我不知道为什么。它唯一能做的就是让人们抑制警告,然后在6.0发布时忘记它,从不进行更改。


答案 2

对于那些想知道休眠6的替代方法是什么的人,你必须将其从:

@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean debug = false;

对此:

@Convert(converter = org.hibernate.type.NumericBooleanConverter.class)
private Boolean debug = false;

参考 - https://docs.jboss.org/hibernate/orm/6.0/userguide/html_single/Hibernate_User_Guide.html#basic-boolean


推荐