java case or_java – 在CriteriaBuilder中使用子句和’case w...
我想使用CriteriaBuilder构建下面显示的having子句:
select objectid,
sum(case when attr_meta = 'severity' then 1 else 0 end) as severity,
sum(case when attr_meta = 'priority' then 1 else 0 end) as priority
from object d
group by objectid
having sum(case when attr_meta = 'severity' then 1 else 0 end) != 1
or sum(case when attr_meta = 'priority' then 1 else 0 end) != 1;
我尝试了以下方法:
Predicate p = cb.equal(cb.sum(cb.selectCase()
.when(cb.equal(root.get("name"), 'severity'), 1).otherwise(0)), 1);
p = cb.or(p, cb.equal(cb.sum(cb.selectCase()
.when(cb.equal(root.get("name"), 'priority'), 1).otherwise(0)), 1));
但这给出了以下例外:
java.lang.NullPointerException
at java.lang.Class.isAssignableFrom(Native Method)
at org.hibernate.ejb.criteria.ValueHandlerFactory.isNumeric(ValueHandlerFactory.java:70)
at org.hibernate.ejb.criteria.predicate.ComparisonPredicate.(ComparisonPredicate.java:69)
at org.hibernate.ejb.criteria.CriteriaBuilderImpl.equal(CriteriaBuilderImpl.java:392)
异常似乎来自外部CriteriaBuilderImpl.equal()调用,它包含selectCase()调用.
内部的equal()调用需要Expression的类型信息. selectCase()调用在创建Expression时,将type设置为null.我们有办法处理这种情况吗?让equ()知道类型的方法,或者对上述查询采用完全不同的方法?
相关文章:

7 个 jQuery 最佳实践
背景 在这篇文章中,我会给大家介绍在编写、调试和审查JavaScript代码的时候一些好的实践(至少我是这么认为的)。事实上,我选择了其中7个最常见的场景。 1、使用CDN及其回退地址(fallback) CDN代表内容传递网…

关于一些Linux SVN的安装使用
关于一些Linux SVN的安装使用 SVN简介The goal of the Subversion project is to build a version control system that is a compelling replacement for CVS in the open source community. The software is released under an Apache/BSD-style open source license.SVN是一…

【转】触屏手机电话拨打链接
1、web方式: <a href"tel:4008006666">电话:4008006666</a> 2、wap方式(主要hack QQ和UC浏览器) <a href"wtai://wp/mc;4008006666">电话:4008006666</a>转载于:https://…

java redis 主从 哨兵_Redis主从复制与哨兵机制
Redis主从复制1、redis的复制功能是支持多个数据库之间的数据同步。一类是主数据库(master)一类是从数据库(slave),主数据库可以进行读写操作,当发生写操作的时候自动将数据同步到从数据库,而从数据库一般是只读的,并接收主数据库…

不同变量的区别
1、形参、局部变量以及局部静态变量的区别。 形参和局部变量均属于自动对象,当到达定义所在的块末尾时被销毁;而局部静态变量自定义开始,直到程序结束才被销毁。 2、全局变量和静态全局变量的区别。 全局变量本身就是静态存储方式,…

Java 使用 Redis
2019独角兽企业重金招聘Python工程师标准>>> 安装 开始在 Java 中使用 Redis 前, 我们需要确保已经安装了 redis 服务及 Java redis 驱动,且你的机器上能正常使用 Java。 Java的安装配置可以参考我们的 Java开发环境配置 接下来让我们安装 Ja…

IPMSM弱磁控制策略
下面将详细介绍这种控制策略的实现过程:(l)具有快速动态响应的前馈弱磁控制策略电动汽车用永磁电动机驱动系统应具有较快的转速响应速度,而传统的的弱磁控制策略通常是先根据电机转速的变化调整交轴电流iq,而后根据转速给定值计算得出直轴电流id这种方法…

java 并发统计_java并发编程|CountDownLatch计数器
0x01,CountDownLatch介绍CountDownLatch是一个计数器,作为java并发编程中三个组件之一,这个组件的使用频率还是很多的。这里分享下自己画的java并发编程组件的图,后面一一介绍这几个组件的使用。上面图片标注的1,2,3分别是自己觉得重要性的&a…

MySQL查询随机数据的4种方法和性能对比
从MySQL随机选取数据也是我们最常用的一种发发,其最简单的办法就是使用”ORDER BY RAND()”,本文介绍了包括ORDER BY RAND()的4种获取随机数据的方法,并分析了各自的优缺点。下面从以下四种方案分析各自的优缺点。方案一: 复制代码 代码如下:…

【转】CPU位数、核数、个数
转自:http://blog.chinaunix.net/uid-20344928-id-2985712.html 32 or 64 linux下查看操作CPU的运行位数: getconf LONG_BIT 如结果是32,表示当前CPU工作在32位模式下(即操作系统是32位的),但并不表示CPU一…

JPA常用注解
2019独角兽企业重金招聘Python工程师标准>>> JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。 JPA由EJB 3.0软件专家组开发,作为JSR-220实现的一…

php pthread 实例,php 真正的多线程 pthread
对于php,有很多种多进程的实现,这里就不说了,下面介绍一种多线程的方式。php真正的多线程实现方式,通过安装php的扩展:pthread 扩展安装步骤如下:1.下载地址是这个:但是这个下载的是 版本3 也就…

Java基础学习总结(1)——equals方法
2019独角兽企业重金招聘Python工程师标准>>> 一、equals方法介绍 1.1.通过下面的例子掌握equals的用法 1 package cn.galc.test;2 3 public class TestEquals {4 public static void main(String[] args) {5 /**6 * 这里使用构造方法Cat()在堆…

动态规划:求最大公共子串
1 /// <summary>2 /// 动态规划:求最大公共子串3 /// LCS (Longest Common Subsequence)4 /// </summary>5 private static string LCS(string str1, string str2)6 { 7 var d …

java 不可最小化,java – 这是最小化绑定失效的有效方法吗?
我有一些复杂的Observable结构,这可能是也可能不是坏主意,但这不是这个问题的焦点.这些结构的问题在于它们会产生很多UI显示的Observable对象的失效.就像我所知道的那样,当JavaFX UI显示某些内容时,它在其上注册了ChangeListener,因此任何使用延迟评估的尝试都会消失.也就是说,…

让你的javascript函数拥有记忆功能,降低全局变量的使用
考虑例如以下场景:假如我们须要在界面上画一个圆,初始的时候界面是空白的。当鼠标移动的时候,圆须要尾随鼠标移动。鼠标的当前位置就是圆心。我们的实现方案是:假设界面上还没有画圆,那么就新创建一个;假设…

Maven学习总结(6)——Maven与Eclipse整合
2019独角兽企业重金招聘Python工程师标准>>> Maven学习总结(六)——Maven与Eclipse整合 一、安装Maven插件 下载下来的maven插件如下图所示:,插件存放的路径是:E:/MavenProject/Maven2EclipsePlugin 进入到eclipse中的dropins目录…

为python安装numpy和scipy(federo)
为了进行数值计算,例如积分等等,需要安装numpy和scipy,其中scipy是依赖于numpy的,所以先要装numpy. 1, 通过下载http://pypi.python.org/pypi/numpy,然后python set.up install安装,不过有些行不…

php执行mysql insert,当执行mysql insert 时插入两条是咋回事
当执行mysql insert 时插入两条是怎么回事?本帖最后由 Eason_____________ 于 2013-07-25 11:25:44 编辑//做了一个手机上传图片到服务器的功能。但是获取到执行insert语句时都要执行两次!//index.phpheader("Content-Type: text/html; charsetUTF-…

产品经理要读什么书?怎么读?
产品相关知识可以在:http://www.aipingce.com/进行学习,本文转自:http://www.aipingce.com/article-22960-1.html 首先,我个人还是非常推荐大家看实体书的,原因如下,算是做个分析吧: 电子书是免…

HTML5:理解head
2019独角兽企业重金招聘Python工程师标准>>> HTML文档的head部分,通常包括指定页面标题,为搜索引擎提供关于页面本身的信息,加载样式表,以及加载JavaScript文件(出于性能考虑,多数时候放在页面底…

php定时任务为什么不好写,php解决crontab定时任务不能写入文件问题的方法分析...
本文实例讲述了php解决crontab定时任务不能写入文件问题的方法。分享给大家供大家参考,具体如下:今天使用crontab写的定时任务没有执行,很纳闷。crontab.phperror_reporting(0);$time date("Y-m-d h:i:s",time());file_put_conten…

SpringMVC权限管理
2019独角兽企业重金招聘Python工程师标准>>> 1.DispatcherServlet SpringMVC具有统一的入口DispatcherServlet,所有的请求都通过DispatcherServlet。 DispatcherServlet是前置控制器,配置在web.xml文件中的。拦截匹配的请求,Servl…

搭建Hadoop集群步骤
——基于三台机器 一、前提 1、 首先要有三台已联网机器,假设为A,B1,B2。其中A:192.168.81.91;B1:192.168.81.92;B2:192.168.81.93。机器装有Ubuntu10.04服务器版64位操作系统。 2、 对三台机器做相同的处…

使用DCloud+Framework7制作移动APP应用(一)
http://my.oschina.net/kenblog/blog/516201转载于:https://www.cnblogs.com/NodeStudy/p/5223273.html

nsq php,Nsq从入门到实践
当nsq跑起来之后, 我们可能会遇到以下问题分布式部署处理错误(何时requeue)如何使用golang lib抱着不应该只停留在入门的态度, 笔者粗浅的研究了一下这几个问题, 希望也对有同样疑问的人有帮助.部署由于NSQ的分布式网络结构, NSQD必须广播(到lookup)自己的地址并让消费者连接, …

Java单元测试之JUnit4详解
2019独角兽企业重金招聘Python工程师标准>>> Java单元测试之JUnit4详解 与JUnit3不同,JUnit4通过注解的方式来识别测试方法。目前支持的主要注解有: BeforeClass 全局只会执行一次,而且是第一个运行Before 在测试方法运行之前运行…

Java 学习笔记 ------第二章 从JDK到IDE
本章学习目标: 了解与设定PATH了解与指定CLASSPATH了解与指定SOURCEPATH使用package与import管理类别初步认识JDK与IDE的对应关系一、第一个Java程序 工具:使用Windows自带记事本或下载其他编辑器(推荐NotePad和Sublime) //第一个…

Delphi中的容器类(二)
TStrings类 出于效率的考虑,Delphi并没有象C和Java那样将字符串定义为类,因此TList本身不能直接存储字符串,而字符串列表又是使用非常广泛的,为此Borland提供了TStrings类作为存储字符串的基类,应该说是它除了TList…

Java怎么把数组怎么放入set,如何将数组转换为Java中的Set
回答(16)2 years ago我从上面的建议中写下了以下内容 - 偷了它......真好!/*** Handy conversion to set*/public class SetUtil {/*** Convert some items to a set* param items items* param works on any type* return a hash set of the input items*/public s…