像“草根”一样,紧贴着地面,低调的存在,冬去春来,枯荣无恙。网站首页关于我

JPA中使用getSingleResult出现javax.persistence.NoResultException: No entity found for query 异常解决办法

作者:admin 分类:[技术人生] 1260人阅读 收藏
分享到:

关键字:Java,JPA,getSingleResult,No entity found for query

项目中采用JPA开发时出现javax.persistence.NoResultException: No entity found for query这个错误,首先想的是什么呢?肯定是网上看看?我建议还是先看看源代码吧,源代码处理不了,再查相关资料,这样貌似更好那为什么会这样呢?我们看看JPA的源代码

 Listresult = query.list();
			if ( mucked ) {
				query.setMaxResults( getSpecifiedMaxResults() );
			}

			if ( result.size() == 0 ) {
				NoResultException nre = new NoResultException( "No entity found for query" );
				getEntityManager().handlePersistenceException( nre );
				throw nre;
			}

 result.size() == 0这句很重要啊,因此我们就把代码改成下边这样就可以了啥

因此需要修改成一下代码形式

  Query query = em.createQuery(qlString);
        query.setParameter("storeName", storeName);
        //先判断空
        if(query.getResultList().size()==0 ){
            return null;
        }else{
            return query.getSingleResult();
        }
改成这样是不是就OK了呢
如果您觉得本文的内容对您的学习有所帮助,您可以支付宝客户端,扫描二维码,捐赠 X元
声明:blog.360chwl.net 博客文章版权属于本站与文章作者,受法律保护。未经作者同意不得转载。