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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中当表中没有记录,为空的时候,用jpa查询的结果返回的是null吗?相关的知识,希望对你有一定的参考价值。

为什么我想判断结果是否为空的时候总报空指针的错误呢?

即使数据库表中的记录为空,jpa查询的结果也不是null,而是一个List列表对象数为空的列表。
你之所以查询结果为空,是因为使用hibernate(如果你是用hibernate作为jpa的实现框架的话)创建的service对象没有创建的缘故。为什么没有创建,请粘贴源代码分析一下。

很简单的道理,你的service这个对象没有初始化,或者叫没有创建。因为没有创建这个对象,所以也就没法调用find()这个方法,所以会抛出空指针异常,之所以model==null可以,是因为server.find()当对象没有创建的的时候就是空null,所以可以。
你的任务是,初始化service这个对象。追问

你好,service对象创建啦,在spring配置文件里我都实例化了,还有我没有用hibernate,我用的是struts2+spring+jpa

参考技术A 你在xml里面配置的方法与对应吗 报的错误是控制指针异常找不到相应的类 你请求转发没有找到东西 当然不判断了 你可以把你报错截图出来 你把model给null当然就对了 因为没有传东西追问

你好,我在spring配置文件中也对service对象实例化了,也与该类对应啊,我也不知道怎么回事,我用公司的电脑做的,电脑封闭的,截不了图的

参考技术B 你好,麻烦截图出来看下。追问

截什么图啊?是这样的,我在底层dao里写了一个查询方法,在action中调用了该方法,model=service.find();
我接下来又判断 if(model!=null)///////elseaaaaaaaa,按道理我想应该输出else里的内容,可是一运行就提示model=service.find();这句话有空指针异常,如果我把model==null;再判断就好用,为什么呢?

Oracle 查询某字段值为空的数据

简单记录一下:

工作中需要查询某个字段值为空的数据,

最开始查询的时候按照以前的思路 :

1.where 字段名=NULL,点击F8,未查到结果;

2.where 字段名=‘’,点击F8,未查到结果;

3.where 字段名 in (‘’),点击F8,未查到结果。

 

经同事指点,NULL为关键字,不是单纯的值,需要用is去查

于是乎将相关语句做如下更改:

where 字段名 is NULL

点击F8,如愿得到想要的结果,

如下图所示:

升级版:

where nvl(字段名,\' \')=\' \'

以上是关于java中当表中没有记录,为空的时候,用jpa查询的结果返回的是null吗?的主要内容,如果未能解决你的问题,请参考以下文章

SQL 当表中某个字段的值为NULL。假如这个值为NULL的时候。我想当成0来做减法处理。该怎么弄?

Spring数据JPA和可以为空的参数

Oracle 选择查询不获取值为空的记录

在查询SQL语句中为空或者不为空的字段应该怎么写?

在@NamedQuery (JPA QL 1.0) 中设置为空的参数

Oracle 查询某字段值为空的数据