在 Hibernate 中使用 @Type 表示二进制数据 >6

问题描述 投票:0回答:3

我正在做一个用 Spring Boot 2.19、Hibernate 5.3.12 和 Java 8 编写的 Spring Boot 课程。 我正在使用 Java 17、Hibernate 6.1.6 和 Spring Boot 3.0.2。

我整理了很多不匹配的东西,但我找不到解决方案的一个问题是:

@Type(type="org.hibernate.type.BinaryType")
自 Hibernate 6 以来

显然已被弃用(我收到错误“无法解析方法 type”)

但是,我找到的解决方案都与二进制数据无关,并且我在文档中找不到任何相关内容..我想因为我对这个领域很陌生,所以当它击中我时我可能看不到答案!

根据我尝试过的各种来源:

@Convert(converter = org.hibernate.type.BinaryConverter.class)
@Type(BinaryType) 

IDE 不会为二进制提供任何建议..在这两种情况下..

我想我可以下载 hibernate 的较低版本依赖项,但我仍然很好奇这在最新的 Hibernate 版本中是如何工作的?

java spring spring-boot hibernate
3个回答
15
投票

您在这里还没有真正提供足够的信息,但是可能解决方案是:

@JdbcType(VarbinaryJdbcType.class)

或:

@JdbcTypeCode(Types.VARBINARY)

0
投票

@Type(type="org.hibernate.type.BinaryType") 在 Hibernate 6 中不起作用>

但是如果你使用 byte[] 类型进行转换,你可以删除注释 @Lob 并使用 @JdbcTypeCode(Types.BINARY) 对我来说它有效


-3
投票

快速更新,以防其他人遇到此问题,看来 Hibernate 6 正在自行处理这种确切的类型转换,无需其他设置,因此只需摆脱该属性即可:

@Type(type="org.hibernate.type.BinaryType")

解决了问题,项目似乎运行良好。

© www.soinside.com 2019 - 2024. All rights reserved.