hibernate查询结果转为实体类 数组越界报错
来源:互联网 发布:卡通农场数据丢失 编辑:程序博客网 时间:2024/05/19 03:28
使用Hibernate的query.list()查询数据时发生以下错误
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:80)
at org.hibernate.type.descriptor.java.CharacterTypeDescriptor.wrap(CharacterTypeDescriptor.java:34)
at org.hibernate.type.descriptor.sql.VarcharTypeDescriptor$2.doExtract(VarcharTypeDescriptor.java:61)
at org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:64)
at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:254)
at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:250)
at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:230)
at org.hibernate.type.AbstractStandardBasicType.hydrate(AbstractStandardBasicType.java:331)
at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2283)
at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1527)
at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1455)
at org.hibernate.loader.Loader.getRow(Loader.java:1355)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:611)
at org.hibernate.loader.Loader.doQuery(Loader.java:829)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274)
at org.hibernate.loader.Loader.doList(Loader.java:2542)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2276)
at org.hibernate.loader.Loader.list(Loader.java:2271)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:459)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:365)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1268)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
原因是数据库里面有char类型长度为1的字段其内容为空格。
解决办法为:在查询语句中,将字段长度为1的字段使用IFNULL做个判断,比如IFNULL(user_type,'-') as user_type,就可以解决了,在界面显示的时候如果为空,则显示为空,也就是什么都没有。
- hibernate查询结果转为实体类 数组越界报错
- Hibernate合并查询结果集为实体类
- yii查询结果对象转为数组
- Hibernate执行原生sql将查询结果直接转为VO
- hibernate 没有实体类 查询
- hibernate将sql或hql查询结果集映射为实体类 不需要映射文件
- Hibernate中使用sql查询结果后再封装成实体类的问题
- Hibernate查询结果转换为实体类型 (HQL/SQL)
- Hibernate(HQL/SQL)查询结果(Object)转换为实体类型
- hibernate查询结果映射到实体和map的方法
- hibernate使用hql多表关联查询list转为json报错
- elasticsearch查询结果中实体类处理
- hibernate查询报错
- Hibernate中根据实体查询报错Ljava.lang.Object; cannot be。。。
- 【Hibernate】Hibernate多表查询后,将查询结果转化为实体
- 数组越界导致容器push_back或erase报错
- 游标Cursor遍历报错,数组越界解决办法
- 利用jxl 读取文件夹下的多张excl表,excl表较多时报错数组越界,较少时不报错,结果正确,求大神解释
- android:简单的二级购物车
- 文件上传下载代码
- 兔子问题
- c++11之enable_if
- HDFS_流
- hibernate查询结果转为实体类 数组越界报错
- HDFS读写文件流程
- Codeforces Round #423 (Div. 2)A-B-C-D 日常训练打卡
- Java解决java.io.FileNotFoundException: E:\work\work (拒绝访问。)
- 不服来战,看Kotlin如何完爆Java
- Hibernate拾遗系列1-方言
- Centos 7下如何删除GPT分区
- 续【将数据从MongoDB迁移到mysql】
- Ubuntu16 e1000e驱动安装