org.hibernate.util.JDBCExceptionReporter - SQL Error: 17006, SQLState: null... 列名无效.could not exe...

28 篇文章 0 订阅
24 篇文章 0 订阅

2018-07-23 15:19:02,374 [http-bio-8080-exec-9] WARN  org.hibernate.util.JDBCExceptionReporter - SQL Error: 17006, SQLState: null
2018-07-23 15:19:02,374 [http-bio-8080-exec-9] ERROR org.hibernate.util.JDBCExceptionReporter - 列名无效
2018-07-23 15:19:02,375 [http-bio-8080-exec-9] ERROR com.css.login.LocalUserLogin - could not execute query
org.hibernate.exception.GenericJDBCException: could not execute query

新发现的一个bug,刚开始以为是缺少字段,但是把执行的SQL放在plsql执行之后,没问题 ,成功查出,但是java代码中执行的时候就是不行,后来网上查了下,原因存在两种,

1.在用数组接收查询结果集合的时候,只查询了一个字段,在查询字段再加一个字段或者换成“*”即可解决问题;

原SQL:select 字段1 from 表名;

改过之后SQL:select 字段1,字段2 from 表名;

或者select * from 表名;

 

2.HIbernate 获取集合的时候指定了错误的字段名称:

sb.append("SELECT  A.字段1  as 别名1  FROM 表A");

 SQLQuery query = HibernateUtil.currentSession().createSQLQuery(sb.toString());
 List<String>   wyList = (List<String>) query.addScalar("name", Hibernate.STRING).list();

 

将name改为别名1即可

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值