jpa @query 不认识IFNULL的解决办法

心血来潮想学习下jpa,然后我就发现我已经站在凉了的边缘:各种坑爹的语法让我生不如死!!!!

 

比如我一个简单的查询:需求是查询业务员的佣金,sql语句如下:

一点问题没有;

然后转换成jpa语法:

   @Query(value = "select new map(t.orderNum,(select m.username from MembersPO m where" +
                " m.id = t.member_id)as username,\n" +
                " t.sumFinalPrice, IFNULL((select item.benfit from ItemPO item where " +
                "item.id = mi.item_id)*sum(mi.buyFinalPrice),0) \n" +
                "\tas\tcommission ,t.createTime as createTime)\n" +
                " from PurchaseOrderPO t , PurchaseOrderItemPO mi \n" +
                " where mi.purchaseOrderId = t.id\n" +
                "\n" +
                " and t.sendStatus = 1\n" +
                "\tGROUP BY mi.purchaseOrderId \n" +
                "\n" +
                " order by t.id desc ",
                countQuery = "select count(t.orderNum) from PurchaseOrderPO t, PurchaseOrderItemPO mi "  +
                " where mi.purchaseOrderId = t.id\n" +
                        " and t.sendStatus = 1\n" +
                        "\tGROUP BY mi.purchaseOrderId \n"

然后悲剧来了:

 

 

各种百度,找不到答案,谷歌一把,在https://stackoverflow.com/questions/27329843/how-to-use-isnull-in-jpa

找到答案了

 

改完后程序启动正常!

版权声明:本文为xb12369原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xb12369/article/details/81560225

智能推荐

invalid derived query的解决办法

在Eclipse的运行过程中,突然有一个接口跳出如下错误: 排查过程: 1. 检查class文件是否存在,检查文件是否已准确编译; 2. 检查JRE的版本是否为开发版本; 发现一切正常,继续排查: 3. 执行mvn compile,继续正常; 4. 执行mvn test,继续正常; 经过以上的测试,排除代码的语法问题,这就只可能是Eclipse校验工具的问题。 打开window->prefe...

Spring-Data-JPA @Query注解 Sort排序

当我们使用方法名称很难,达到预期的查询结果,就可以使用@Query进行查询,@Query是一种添加自定义查询的便利方式 (方法名称查询见http://blog.csdn.net/niugang0920/article/details/79426521) 使用@Query注解,使用注解有两种方式,一种是JPQL的SQL语言方式,一种是原生SQL的语言. 1.User.java 实体类 2.UserD...

jpa使用@Query调用自定义sql函数

1 自定义sql函数 还是一定一定要注意,oracle大小写问题,不加双引号代表不区分大小写,加了双引号代表区分大小写,写sql语句的时候就很可能会出现诸如标识符无效或者调用函数失败等问题 2 测试自定义sql函数 3 修改后台数据访问层 使用function(‘函数名’,para1.para2,…)在Query中调用sql函数。 参考资料 1、How to ...

JPA错误 Paging query needs to have a Pageable parameter!

1.报错信息 2.错误原因 使用JPA的Page分页, 但是没有传Pageable 3.解决问题...

RabbitMQ(一) 基础知识

1.什么是MQ?        MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取队列中的消息。        RabbitMQ是MQ的一种。下面详细介绍一下R...

猜你喜欢

图像插值技术——双线性插值法

https://www.cnblogs.com/gshang/p/12968496.html 在图像处理中,如果需要对图像进行缩放,一般可以采取插值法,最常用的就是双线性插值法。本文首先从数学角度推导了一维线性插值和二维线性插值的计算过程,并总结了规律。随后将其应用到图像的双线性插值上,利用Matlab编程进行图像的缩放验证,实验证明,二维线性插值能够对图像做出较好的缩放效果。 数学角度的线性插值...

【2】JVM-垃圾回收机制算法分析

目录 知识点1:什么是垃圾回收机制 1、finalize方法作用 知识点2:新生代与老年代 知识点3:如何判断对象是否存活 1、引用计数法 2、根搜索算法 知识点4:垃圾回收机制策略 1、标记清除算法 (1)应用场景 (2)优缺点 2、复制算法 (1)概念 (2)应用场景 (3)优缺点 3、标记压缩算法 (1)概念 (2)压缩算法简单介绍 (3)优缺点 4、Minor GC和Full GC区别 5...

使用机器学习算法进行验证码识别

数据集:MNIST数据集,包含大量验证码,我们可以使用K近邻算法、支持向量机和深度学习进行验证码识别。 K近邻算法的流程图: SVC流程图: 多层感知机MLP Hello MNIST Extracting mnist/train-images-idx3-ubyte.gz Extracting mnist/train-labels-idx1-ubyte.gz Extracting mnist/t10...

自动化运维工具SaltStack进阶(7)

文章目录 1. masterless 1.1 应用场景 1.2 masterless配置 1.2.1 修改配置文件minion 1.2.2 关闭salt-minion服务 1.2.3 salt-call 2. salt-master高可用 2.1 salt-master高可用配置 2.2 salt-master高可用之数据同步 3. salt-syndic分布式架构 3.1 salt-syndic...

Java的*.class字节码查看方法

Java字节码可以让我们更深入理解java程序工作细节,Java类字节码可通过下面方法进行查看:(比较常用的两种,当然你也可以下载小软件工具等等进行) cmd命令 对代码进行反汇编: 反汇编并输出附加信息 或 如下: IDE安装plugin 这里只介绍使用IntelliJ IDEA,eclipse类似: IntelliJ IDEA菜单中File–>Settings–&...