记一次JPA遇到的奇葩错误——本地sql不识别表名的别名

报错:Unknown column 'our' in 'field list'

起因:需要本地sql查询后,分页返回自定义对象。报错信息如下:

问题原因:

因为是分页查询,当然需要知道数据的总数,所以hibernate会自动的执行sql帮你查询所有的数量,但是看下图就能发现,他把我的表名的别名当做字段来select count 了。

解决办法:

在本地sql即@Query里添加一个,countQuery,将你要查询的sql语句复制,手动select count (*),这样hibernate就不会去自己计数了,走的就是你写的这个计数sql。(因为当时sql不是很短,我就一直删减找问题,下面是解决后的大致样图):

总结:

可能是状态不是很好了,所以debug了很久都没有找出问题所在,下午5点多开始弄到8点,群里各种问,考虑过特殊字符,中文空格各种,都快怀疑人生了。今早头头帮我看了后,两分钟解决。。。调试能力还是太弱了。

其实日志里面已经很清楚了,hibernate都打印出来执行的sql了,只是我没太注意那一条sql,如果注意到了可能能够面向百度解决吧。

分析一下报错:

1. unknown column 'xxx' in 'field list' 这明显说明有sql把你这个xxx当做字段了,而我这个是表名的别名,这样就能定位到sql错误

2. 再从hibernate生成的语句中也能清晰看到 select count (xxx) ...... 这问题就很明显了。

一直以来都觉得自己找错还是可以的,这次和头头debug的差距一下子让我认识到要学的还有很多,尤其是经验不足等。这种问题,它的出问题点都是能够看到的,下次注意仔细看报的异常以及框架打印的一些日志吧,从中获取些自己想要的信息。

记一次JPA遇到的奇葩错误——本地sql不识别表名的别名的更多相关文章

  1. 新浪微博share分享接口请求奇葩错误

    17年6月30号,微博正式转入牛逼状态: 限制原来的微博发布删除等接口:(想用就开套餐,不然别说话) 开放新的分享接口share,然而,在调用这个分享接口时候,就会出现各种各样的奇葩错误: 注意事项: ...

  2. php奇葩错误:htmlspecialchars处理中文丢失

    $value = "中文中文"; $res = htmlspecialchars($value); 经过这个函数处理之后,$res就直接变成了空的字符串. 奇葩错误啊!后来发现要这 ...

  3. 记一次docker compose的低级错误

    记一次docker compose的低级错误 问题 ​ 今天在学习dockercompose的时候,启动docker compose up,结果却出现异常 Error response from da ...

  4. [SQL]开启事物,当两条插入语句有出现错误的时候,没有错误的就插入到表中,错误的语句不影响到正确的插入语句

    begin transaction mustt insert into student values(,'kkk','j大洒扫','j','djhdjh') insert into student v ...

  5. SQL Server捕获发生The query processor ran out of internal resources and could not produce a query plan...错误的SQL语句

    最近收到一SQL Server数据库服务器的告警邮件,告警内容具体如下所示: DATE/TIME: 10/23/2018 4:30:26 PM DESCRIPTION:  The query proc ...

  6. Spring Boot + JPA(hibernate 5) 开发时,数据库表名大小写问题

      (转载)Spring Boot + JPA(hibernate 5) 开发时,数据库表名大小写问题   这几天在用spring boot开发项目, 在开发的过程中遇到一个问题hibernate在执 ...

  7. JPA中自动使用@Table(name = "userTab")后自动将表名、列名添加了下划线的问题

    一.问题 JPA中自动使用@Table(name = "userTab")后自动将表名.列名添加了下划线的问题,如下图: 二.解决 在application.properties文 ...

  8. spring data jpa在使用PostgreSQL表名大小写的问题解决

    国内的文章看了一遍,其实没找到根本问题解决方法,下面将列举这一系列的问题解决方法: 1.在配置文件增加如下配置: spring.jpa.hibernate.naming.physical-strate ...

  9. MySQL 中 You can't specify target table '表名' for update in FROM clause错误解决办法

    在MySQL中,写SQL语句的时候 ,可能会遇到You can't specify target table '表名' for update in FROM clause这样的错误,它的意思是说,不能 ...

随机推荐

  1. 剑指offer第二版-总结:二叉树的遍历

    思想:前序(根左右),中序(左根右),后序(左右根) 前序非递归遍历: 首先判断根是否为空,将根节点入栈 1.若栈为空,则退出循环 2.将栈顶元素弹出,访问弹出的节点 3.若弹出的节点的右孩子不为空则 ...

  2. android网络编程_socket(一)

    转载http://www.eoeandroid.com/thread-97477-1-1.html 小知识点:UDP协议和TCP协议的不同.UDP是把数据都打成数据包,数据包上自带通信的地址,但是数据 ...

  3. 网页内嵌html遇到的问题

    在项目中遇到个问题 充值功能是点击一个按钮这个按钮会弹出模态框,输入充值金额会执行一段脚本自动提交数据到https://openapi.alipay.com/gateway.do上 结果:本网页跳转到 ...

  4. Excel催化剂开源第40波-Excel插入图片做到极致的效果

    不知道是开发人员的自我要求不高还是用户的使用宽容度足够大,在众多Excel插入图片的版本中,都没有考虑到许多的可大幅度提升用户体验的细节处理. Excel催化剂虽然开发水平有限,但也在有限的能力下,尽 ...

  5. 吐槽下Excel的十大不规范使用问题

    Excel是个老少咸宜的软件工具,这是不争的事实,无论哪个级别的用户,都能在乐在其中.但问题是太多的人群因为不懂得正确的使用姿势,硬生生地把Excel玩得让人啼笑皆非,同样留给接手者一个难堪无比的烂摊 ...

  6. Linux基础学习整理

    linux学习记录 下载地址 centos 下载地址: 网易镜像:http://mirrors.163.com/centos/6/isos/ 搜狐镜像:http://mirrors.sohu.com/ ...

  7. C#4.0新增功能01 动态绑定 (dynamic 类型)

    连载目录    [已更新最新开发文章,点击查看详细] C# 4 引入了一个新类型 dynamic. 该类型是一种静态类型,但类型为 dynamic 的对象会跳过静态类型检查. 大多数情况下,该对象就像 ...

  8. 聊聊面试中的 Java 线程池

    ​背景 关于 Java 的线程池我想大家肯定不会陌生,在工作中或者自己平时的学习中多多少少都会用到,那你真的有了解过底层的实现原理吗?还是说只停留在用的阶段呢?而且关于 Java 线程池也是在面试中的 ...

  9. 2019年7月16日 abp(net core)+easyui+efcore实现仓储管理系统——多语言(十)

    abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...

  10. python函数对象-命名空间-作用域-02

    函数对象 函数是第一对象: # 函数名指向的值可以被当做参数传递 函数对象的特性(*****灵活运用,后面讲装饰器会用到) 函数名可以像变量一样被传递 # 变量可以被传递 name = 'jason' ...