hibernate5 报错com.microsoft.sqlserver.jdbc.SQLServerException: 列名 XX 无效。
来源:互联网 发布:linux 模块查看 编辑:程序博客网 时间:2024/06/08 20:15
今天使用hibernateTemplate.executeWithNativeSession执行sql查询语句把结果转换成实体时候,发现除了第一页请求查询正常,请求其他页面时候报错com.microsoft.sqlserver.jdbc.SQLServerException: 列名 id 无效
1 错误描述:
2 报错出现场景:
使用hibernateTemplate.executeWithNativeSession执行sql查询语句把结果转换成实体时候
List<BbsTopicInfo> list = hibernateTemplate.executeWithNativeSession( new HibernateCallback<List<BbsTopicInfo>>() { @Override public List<BbsTopicInfo> doInHibernate(Session session) throws HibernateException { SQLQuery sqlQuery = session.createSQLQuery(sql); // 添加要查询字段 数据库字段和实体类字段对应起来 AddScalar.addSclar(sqlQuery, BbsTopicInfo.class); // 把结果转换成实体 sqlQuery.setResultTransformer(Transformers.aliasToBean(BbsTopicInfo.class)); sqlQuery.setFirstResult(firstResult); sqlQuery.setMaxResults(pageSize); return sqlQuery.list(); } });
3 分析可能原因: 根本原因是结果集中找不到与实体类属性名称id的列
3.1 可能实体类有id属性,但查询结果中没有id属性;
此时去掉实体类中多余的属性即可
3.2可能实体类有id属性,但hibernate把查询结果把id属性名称解析为其他名称,如page0_;
测此时给查询语句每列加AS改变列名,列名与实体类属性一样
sql部分语句:
hibernate打印sql语句
修改后的sql语句,加了AS属性
hibernate最终打印 sql语句
4 结论:
使用hibernateTemplate.executeWithNativeSession执行sql查询语句把结果转换成实体时候,要确保属性个数和名称,与查询语句的列一模一样对应。
阅读全文
0 0
- hibernate5 报错com.microsoft.sqlserver.jdbc.SQLServerException: 列名 XX 无效。
- com.microsoft.sqlserver.jdbc.SQLServerException:对象名 ‘xx’ 无效
- com.microsoft.sqlserver.jdbc.SQLServerException: 列名XXXXX 无效
- com.microsoft.sqlserver.jdbc.SQLServerException: 对象名 ‘xxx' 无效
- com.microsoft.sqlserver.jdbc.SQLServerException: 对象名 ‘xxx' 无效
- com.microsoft.sqlserver.jdbc.SQLServerException: 对象名 'xxxxx' 无效
- com.microsoft.sqlserver.jdbc.SQLServerException: 对象名 ‘xxx' 无效
- com.microsoft.sqlserver.jdbc.SQLServerException: 对象名 'bbs_category' 无效
- com.microsoft.sqlserver.jdbc.SQLServerException
- com.microsoft.sqlserver.jdbc.SQLServerException: socket closed
- JDBC链接SQL Server数据库报错:com.microsoft.sqlserver.jdbc.SQLServerException: 到主机 的 TCP/IP 连接失败。
- JSP com.microsoft.sqlserver.jdbc.SQLServerException: '@P0' 附近有语法错误。
- com.microsoft.sqlserver.jdbc.SQLServerException: 结果集已关闭
- com.microsoft.sqlserver.jdbc.SQLServerException: 结果集已关闭
- java com.microsoft.sqlserver.jdbc.SQLServerException: 该连接已关闭。
- com.microsoft.sqlserver.jdbc.SQLServerException: 该连接已关闭
- com.microsoft.sqlserver.jdbc.SQLServerException: 用户 'sa' 登录失败。
- jsp com.microsoft.sqlserver.jdbc.SQLServerException: 结果集已关闭
- C语言混合数值和字符输入简单介绍
- 动态HTML介绍
- 推荐几个H5、app制作开发工具
- 获取苹果设备和系统信息(更新至iPhone X)
- mybatis一对多配置
- hibernate5 报错com.microsoft.sqlserver.jdbc.SQLServerException: 列名 XX 无效。
- DLL---工作笔记
- SparkCore杂记一
- 神经网络API、Kotlin支持,那些你必须了解的Android 8.1预览版和Android Studio 3.0新特性
- 添加jQuery插件
- LeetCode4
- hdu 5701
- 关于listview addheadview时,点击listview报错的问题
- 数据库连接池