我正在做一个用 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 版本中是如何工作的?
您在这里还没有真正提供足够的信息,但是可能解决方案是:
@JdbcType(VarbinaryJdbcType.class)
或:
@JdbcTypeCode(Types.VARBINARY)
@Type(type="org.hibernate.type.BinaryType") 在 Hibernate 6 中不起作用>
但是如果你使用 byte[] 类型进行转换,你可以删除注释 @Lob 并使用 @JdbcTypeCode(Types.BINARY) 对我来说它有效
快速更新,以防其他人遇到此问题,看来 Hibernate 6 正在自行处理这种确切的类型转换,无需其他设置,因此只需摆脱该属性即可:
@Type(type="org.hibernate.type.BinaryType")
解决了问题,项目似乎运行良好。