java中当表中没有记录,为空的时候,用jpa查询的结果返回的是null吗?

为什么我想判断结果是否为空的时候总报空指针的错误呢?... 为什么我想判断结果是否为空的时候总报空指针的错误呢? 展开
 我来答
精灵只路过
推荐于2017-12-15 · TA获得超过2144个赞
知道小有建树答主
回答量:619
采纳率:100%
帮助的人:650万
展开全部
即使数据库表中的记录为空,jpa查询的结果也不是null,而是一个List列表对象数为空的列表。
你之所以查询结果为空,是因为使用hibernate(如果你是用hibernate作为jpa的实现框架的话)创建的service对象没有创建的缘故。为什么没有创建,请粘贴源代码分析一下。

很简单的道理,你的service这个对象没有初始化,或者叫没有创建。因为没有创建这个对象,所以也就没法调用find()这个方法,所以会抛出空指针异常,之所以model==null可以,是因为server.find()当对象没有创建的的时候就是空null,所以可以。
你的任务是,初始化service这个对象。
追问
你好,service对象创建啦,在spring配置文件里我都实例化了,还有我没有用hibernate,我用的是struts2+spring+jpa
往翼已离夜
2013-04-20 · TA获得超过176个赞
知道小有建树答主
回答量:552
采纳率:85%
帮助的人:102万
展开全部
你在xml里面配置的方法与对应吗 报的错误是控制指针异常找不到相应的类 你请求转发没有找到东西 当然不判断了 你可以把你报错截图出来 你把model给null当然就对了 因为没有传东西
追问
你好,我在spring配置文件中也对service对象实例化了,也与该类对应啊,我也不知道怎么回事,我用公司的电脑做的,电脑封闭的,截不了图的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-04-19
展开全部
你好,麻烦截图出来看下。
追问
截什么图啊?是这样的,我在底层dao里写了一个查询方法,在action中调用了该方法,model=service.find();
我接下来又判断 if(model!=null){///////}else{aaaaaaaa},按道理我想应该输出else里的内容,可是一运行就提示model=service.find();这句话有空指针异常,如果我把model==null;再判断就好用,为什么呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式