我应该用什么来替换 hibernate 已弃用的 @TypeDef 和 @Type 注释?

Cry*_*ark 29 java hibernate deprecated

我刚刚将 Hibernate 使用的版本升级到 5.6.1,现在似乎已弃用一些与类型相关的注释:

@TypeDef(name = "json", typeClass = JsonBinaryType::class)


@Type(type = "json")
Run Code Online (Sandbox Code Playgroud)

我没有找到任何关于该做什么的文档,除了

6.0 将引入一系列新的类型安全注释来达到相同的目的

我们的质量指南迫使我们尝试解决每个警告,因此我想用非弃用的用途替换这些注释。

Vid*_*ran 13

由此

import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;
 
@TypeDef(name = "json", typeClass = StringJsonUserType.class)
public class EntityName {
 
 @Type(type = "json")
 private propertyName
Run Code Online (Sandbox Code Playgroud)

进入休眠状态 6

import jakarta.persistence.Convert;
import org.hibernate.annotations.JdbcTypeCode;
 
 
@Convert(attributeName = "entityAttrName", converter = StringJsonUserType.class)
public class EntityName {
 
 
 @JdbcTypeCode(SqlTypes.JSON)
 private propertyName
Run Code Online (Sandbox Code Playgroud)


k_o*_*_o_ 10

似乎在 Hibernate 6 之前没有替代品。Type 和 TypeDef被标记为已弃用,以将其标记为在版本 6 中删除,但到目前为止不存在替代品。这里的思想是,已弃用并不表示已经存在新版本,这对于大多数开发人员来说可能不是一个直观的含义。

现在,这已在当前的 5.6.3-Final 版本系列中恢复。