HibernateTemplate的find(String querystring)返回值详解

项目源码中出现如下代码:

HibernateTemplate ht =……

List<Object[]> tempList = ht.find(String querystring);

查看api发现HibernateTemplate的find(String querystring)方法返回的是一个List<Object>对象,当时就比较纳闷了,难道Object对象能强转为Object数组?当然不能。那是为什么呢?find方法返回的list本质上就是List<Object[]>类型的。追踪Spring api和hibernate api可以略知一二。

public List <span style="color:#cc0000;">find(String queryString)</span> throws DataAccessException {
	return <span style="color:#cc0000;">find(queryString, (Object[]) null)</span>;
}

public List <span style="color:#cc0000;">find(final String queryString, final Object[] values) </span>throws DataAccessException {
	return (List) execute(new HibernateCallback() {
		public Object doInHibernate(Session session) throws HibernateException {
			Query queryObject = session.createQuery(queryString);
			prepareQuery(queryObject);
			if (values != null) {
				for (int i = 0; i < values.length; i++) {
					queryObject.setParameter(i, values[i]);
				}
			}
			return <span style="color:#cc0000;">queryObject.list()</span>;
		}
	}, true);
}

public List list()

throws HibernateException

Return the query results as a List. If the query contains multiple results pre row, the results are returned in an instance of Object[].

Returns:

the result list

Throws:

HibernateException

解决这个问题的同时,也发现了另外一个问题:Object[] 可以转型为Object,这是为什么呢?查证得知,java中数组也是对象,Object是根对象。

Object[] obj1= new Object[2];
Object obj2 =obj1;

HibernateTemplate的find(String querystring)返回值详解

时间: 2024-08-01 16:24:40

HibernateTemplate的find(String querystring)返回值详解的相关文章

Nancy 返回值详解

原文:Nancy 返回值详解 简介 Nancy 是一个轻量级的,简单粗暴的framework用来构建基于HTTP的各种服务,兼容.Net和Mono.它的返回值也是多种多样的,适应各种不同的情况.包括Response.AsFile().Response.AsRedirect(). Response.AsImage(). Response.AsJson().Response.AsText(). Response.AsXml()等 一:string Get["/get"] = paramet

C语言 realloc为什么要有返回值,realloc返回值详解/(解决任意长度字符串输入问题)。

在C语言操作中会用到大量的内存操作,其中很常用的一个是realloc(). 由字面意思可以知道,该函数的作用是用于重新分配内存. 使用方式如下: NewPtr=(数据类型*)realloc(OldPtr,MemSize) 其中OldPtr指向 待重新分配内存的指针. NewPtr指向 新分配空间的指针. MemSize为 分配后的空间大小. 该函数的使用涉及以下几个问题: 1.不同情况下的返回值 2.OldPtr指向的内存会不会自动释放 3.OldPtr和NewPtr分别是什么内容,他们有什么关

(一)Python入门-5函数:02形参和实参-文档字符串-函数注释-返回值详解

一:形参和实参 [操作]定义一个函数,实现两个数的比较,并返回较大的值. 1 def printMax(a,b): 2 '''实现两个数的比较,并返回最大值!''' 3 if a >b: 4 print(a,'较大值') 5 else: 6 print(b, '较大值') 7 8 printMax(20,30) 9 printMax(30,5) 10 11 #测试文档字符串的使用 12 help(printMax) 13 help(printMax.__doc__) 上面的 printMax 函

用PHP上传文件时$_FILES中error返回值详解

用PHP上传文件时,我们会用程序去监听浏览器发送过来的文件信息,首先会通 过$_FILES[fieldName]['error']的不同数值来判断此欲上传的文件状态是否正常.$_FILES[fieldName] ['error']==0代表一切正常,其它数值的具体含义请参考下面一段程序的注释部分,如有翻译不到之处还望指正! switch($_FILES[$field]['error']) { case 1:            // 文件大小超出了服务器的空间大小            $th

HTTP 返回状态值详解

当用户点击或搜索引擎向网站服务器发出浏览请求时,服务器将返回Http Header Http头信息状态码,常见几种如下: 1.Http/1.1 200 OK 访问正常  表示成功访问,为网站可正常访问时的状态. 2.Http/1.1 301 Moved Permanently 301重定向永久重定向  对搜索引擎相对友好的跳转方式,当网站更换域名时可将原域名作301永久重定向到新域名,原域名权重可传递到新域名,也常有将不含www的域名301跳转到含www的,如xxx.com通过301跳转到www

pointer-events属性值详解

其实早知道这个属性,但是一直没有去研究过.今天正好在twitter看到这个词,就去研究了下,正好解决了目前遇到的一个小难题,所以分享下.嗯,其实这是个比较简单的CSS3属性. 在某个项目中,很多元素需要定位在一个地图层上面,这里就要用到很多绝对定位或者相对定位的元素,但是这样的话,这些浮在上面的div或者其它元素一般都会给个宽高,或者relative的元素可以不给宽高,这个时候,这些元素就会盖住下面的地图层,以至于地图层无法操作... 然后正好在Google map见到了类似的问题,拿来当例子来

为什么 string.find()返回值是-1

之前好像在哪里见到过这个问题,时间有点久,想不起来了,今天写字符串又碰到这个问题,书上给出的定义是当string.find()没有找到时返回的是一个非常大的值,网上有人说是-1,两种说法都对,由于整数在计算机中是依照补码形式存放的,一个高位的整数在少一位的整数表示时假设高位的第二位是1,那么少一位的表示下就是负数,假设高位整数的第二位包含第二位之后全是1,那么在少一位的表示下就是-1.string.find()返回的那个非常大的数是2的32次方,而在用4个字节表示的int,long整形,最多仅仅

java中的String类常量池详解

test1: package StringTest; public class test1 { /** * @param args */ public static void main(String[] args){ String a = "a1"; String b = "a"+ 1; System.out.println(a==b); }//true } test2: package StringTest; public class test2 { /** *

String字符串关于==的详解

String详解 字符创建方式 字符串创建有两种方式 String s = new String("myString"); String string2 = "myString"; 创建过程解析 方式一创建时,先解析字符串常量"myString",它会在常量池里面的一个字符串常量列表中查找,如果没有找到,在堆里面创建一个包含字符序列(myString)的String对象s1,然后把这个String对象的字符序列和引用作为名值对存放到常量池里面的字