DetachedCriteria类中uniqueResult()方法与list()方法区别

DetachedCriteria criteria = new RecruitmentCriteria().createForDealer(dealerId, jobTitleId)
        	    			.dateFilterForSM(year, month)
        	    			.candidateFilterForSM(candidateId)
        	    			.finalAssessmentResultPassed().build();
Integer count = (Integer) criteria.getExecutableCriteria(getSession()).uniqueResult();
if(count > 0){  return true;}

DetachedCriteria构建检索条件时,有两个方法.uniqueResult()与.list(),

采用前者uniqueResult()方法,如果查询结果为1条,则返回值为1;查询结果为0条,则返回0;查询结果大于1条,则抛出异常NonUniqueRequestException.

采用后者list()方法,检索时bibernate会为在底层拼上count(*),因此返回值为0或正整数。

时间: 2024-11-05 17:24:13

DetachedCriteria类中uniqueResult()方法与list()方法区别的相关文章

NSMutableDictionary 类中增加键值对方法分析

在iOS中可变字典增加一个键值对的方法有setObject: forKey: 和setValue : forKey: .为了方便我们把这两个方法简称为方法A和方法B. B这个方法中其中的value值是不能为nil,否则程序会出项崩溃.而A方法中的这个value可以为nil,但是当这个value位nil时,系统会自动调用removeObjectforKey:这个方法.这样就把这个键值对删除掉了.B方法中的key值可以是任意类型的,但是这个类型必须要实现NSCopying协议.而A方法中它的key值

C#判断一个类中有无"指定名称"的方法

C#中可以通过反射分析元数据来解决这个问题,示例代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 using System; using System.Reflection; namespace Hello {     class Program     {  

scala中隐式转换之隐式转换调用类中本不存在的方法

/** * Created by root * Description : 隐式转换调用类中本不存在的方法 */ class Person(name : String){ def getPersonName = println("name = " + name) } object Type2Type{ implicit def type2(a : ImplicitTest2) = new Person("xiaoming") } class ImplicitTest

类中为什么要定义__init__()方法

总结一下, 加上__init__()方法后,类才可以实例化,不加类就是个空壳,相当于一个方法集合 学习Python的类,一直不太理解为什么一定要定义init()方法,现在简要谈一下自己的理解吧. 1.不用init()方法定义类 定义一个矩形的类,目的是求周长和面积. class Rectangle(): def getPeri(self,a,b): return (a + b)*2 def getArea(self,a,b): return a*b rect = Rectangle() prin

转:python学习——类中为什么要定义__init__()方法

学习Python的类,一直不太理解为什么一定要定义init()方法,现在简要谈一下自己的理解吧. 1.不用init()方法定义类定义一个矩形的类,目的是求周长和面积. 1 class Rectangle(): 2 def getPeri(self,a,b): 3 return (a + b)*2 4 def getArea(self,a,b): 5 return a*b 6 7 rect = Rectangle() 8 print(rect.getPeri(3,4)) 9 print(rect.

python 旧类中使用property特性的方法

在python中,我们可以拦截对象的所有特性访问.通过这种拦截的思路,我们可以在旧式类中实现property方法. __getattribute__(self, name) #当特性name被访问时自动调用(只能在新式类中使用) __getattr__(self, name) #当特性name被访问且对象没有相应的特性时被自动调用 __setattr__(self, name, value) #当试图给特性name赋值时会被自动调用 __delattr__(self, name) #当试图删除特

java反射之遍历类中所有内部类及属性方法

package com.zr.entity; /** * 仅用于测试类,从实际项目中抽出来的 * @author zr * */ public class Constant { /** * 参数校验枚举类 * @author zr * */ public static enum ResultObjectType { //成功 SUCC(0), //失败,异常 ERROR(1), //参数错误 PARAMERROR(2), //数据为空 NODATA(9); private Integer val

PHP接口中的静态变量、常量与类中静态变量、常量的区别

接口: 1 不能够定义静态变量(常量除外) 2 定义的常量 const YOUCONST = VALUE,不能在子类中覆盖,在子类中以 interfaceName::YOUCONST的方式调用 3 不能使用parent::YOUCONST的方式调用接口的常量 类: 1 const 变量可以使用parent::YOUCONST的方式,className::YOUCONST的方式在子类中访问 2 const定义的变量,在子类中可以被覆盖 3 当然在类中可以定义静态成员变量了 示例: <?phpint

UIResponder 类中的触摸事件响应方法

touchesBegan:withEvent:-当触摸事件处于"起步阶段"(starting phase),也就是用户刚开始触碰屏幕时,系统会调用这个方法. touchesMoved:withEvent:-当用户触摸屏幕并持续在屏幕上移动手指时,系统会调用这个方法. touchesEnded:withEvent:-当用户触摸屏幕的一根手指或所有手指都从屏幕上拿开时,触摸过程就结束了,而系统此时会调用这个方法.如果在用户移动手指的过程中程序做了一些处理,那么此时应该会执行相关的清理工作.