考虑下表,其中一列定义为
TRANSACTION_CATEGORY_CODE VARCHAR2(1)
这是实体中的字段:
@Column(name = "TRANSACTION_CATEGORY_CODE", length = 1)
private String transactionCategoryCode;
此设置一直运行良好,直到现在我想迁移到 Hibernate 版本 6.x。现在,每当从表访问数据时,都会引发以下异常:
class java.lang.Character cannot be cast to class java.lang.String (java.lang.Character and java.lang.String are in module java.base of loader 'bootstrap')
我想象这是由于 Hibernate 将一个字符列解释为
Character
而不是默认情况下的 String
。 Hibernate 如何被迫将此列解释为 String
?
我最近在将 Spring Boot 2.7.1 迁移到 Spring Boot 3.2.1 时遇到了这个问题。这很奇怪,因为它不应该将 Oracle DB 中的 varchar(1) 列映射到 java 中的字符,有人可以帮忙解决这个问题吗?