No entity found for query

EJB: 很久以前一直用EntityManager下getResultList()查询数据,即便一个数据亦是如此,所以要频繁的List.get(0),生活就在这样的反反复复中变得让人“怎渡”;后来,getSingleResult()出现了,然后,过了几秒钟,它被宠幸了…

尽管如此,用它时还是要小心,因为你的代码的“可能异常”里从此就多了一个“No entity found for query”,如果你不记得你曾用过.getSingleResult()这么个东东,你可能就一辈子不记得了,你为了这样一个东东发呆、发闷、发火,只因为你曾毫无顾忌的宠幸它…

在getSingleResult的源码里有这样一句: @throws EntityNotFoundException if there is no result

也就是说,查不到结果时,它是抛异常的,不会返回null..。

既然如此,一个解决办法就是把调用getSingleResult()的语句放在try块中,如果数据库中没有与jpql语句匹配的记录的话就在catch块中处理,否则就在try块中处理。

jsf页面的自动刷新,只需要在actin后面添加immediate="true"就ok了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值