关于session.createQuery(hql).list()的问题

w2gavin 2009-09-07
代码:
private static void nullTest(Session session){
		String childId = "8a8a1dasdew8d56fb01238d56fffa0001";
		Query q = session.createQuery("from Child c where c.id=?");
		q.setString(0, childId);
		List l = q.list();
	}

如果指定的childId在数据表中不存在,这段代码也不会报错,而且在下面写:

System.out.println(l==null);


其输出结果也是false,是不是我可以这样理解,所有通过

session.createQuery().list


得到的list都是非空的。

那么所有的

if(null!=l)判断都可以被省略,对吗?

希望大家发表下自己的看法。
corejava5 2009-09-07
l==null || l.size()<1
left405 2009-09-08
即使没有返回数据  list 也不会是null
是一个size为0的list
打倒小日本 2009-09-08
恩 list()方法永远不会返回null的
ch_space 2009-09-08
应该用l.isEmpty()判断。。。
liedexuan 2009-11-13
list 不可能为空 只是长度为0
lxtxqr 2009-11-13
楼上所的对 List不可能是空 list里面包含的Object[0]...........Object[N] 是null
元素是null list不是空
younglibin 2009-11-23
lxtxqr 写道
楼上所的对 List不可能是空 list里面包含的Object[0]...........Object[N] 是null
元素是null list不是空

 

对对!你用debug 更总一下!
weibawoaini 2009-11-23
这个问题我以前也忽视过,确实会通过非空验证,但是你打印下长度就知道是0.
treblesoftware 2009-11-24
if(list.get(0)=null){
return null;
}else{
  list;
}
Global site tag (gtag.js) - Google Analytics