很简单的一个查询:queryList(),但是查询出现异常,打印信息为:

1
2
3
4
5
java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(String.java:658)
at org.hibernate.type.descriptor.java.CharacterTypeDescriptor.wrap(CharacterTypeDescriptor.java:79)
at org.hibernate.type.descriptor.java.CharacterTypeDescriptor.wrap(CharacterTypeDescriptor.java:33)
at org.hibernate.type.descriptor.sql.VarcharTypeDescriptor$2.doExtract(VarcharTypeDescriptor.java:66)

  SQL 在 Navicat 上正常,我天真地以为问题出在代码中。多轮调试之后,我发现代码是没有问题的。无果,寻求网络支援,有人说是因为char类型的字段值存在空格符:“ ”。我将该字段值用 “” 替代了“ ”(空格),程序正常运行。

  解决方法:将 “ ”(空格) 替换成 “”。又一次告诉我们,数据库设计要规范——设置合适的默认值,例如 0,Empty String 之类。

版权声明:转载请注明出处 http://zhoupq.com/Hibernate-查询出错-String-index-out-of-range-0/