在哪里决定转换什么类型的DB字段?



旧代码在一个环境中停止工作。下面的代码给出了异常java.lang.ClassCastException: java.lang.Character不能强制转换为java.lang.String:

List l = em.CreateNativeQuery(q).getResultList();
String s = (String) ((Object[])l.get(0))[0];

原因是在所有环境中char(1) DB字段都被转换为char[1],而char[1]可以被强制转换为String。在一个环境中,char(1) DB字段被转换为Character,不能强制转换为String。我可以解决它,但我有以下问题。在哪里决定转换为哪种类型的DB字段?此应用程序适用于Oracle 19, Weblogic, jodbc8, java 8, hibernate 3*

似乎对这种转换负责的是hibernate。在我的例子中,问题是在表字段定义。在所有正确的工作环境中字段类型为VARCHAR2(1),但在非工作环境中字段类型为CHAR(1)

最新更新