返回顶部
首页 > 资讯 > 后端开发 > Python >jpa异常Noentityfoundforquery问题解决
  • 912
分享到

jpa异常Noentityfoundforquery问题解决

2024-04-02 19:04:59 912人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录jpa是什么?出现的问题getSingleResult实现源码分析解决问题 jpa是什么? JPA全称Java Persistence api.JPA通过jdk 5.0注解或XM

jpa是什么?

JPA全称Java Persistence api.JPA通过jdk 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。

JPA 是 JCP 组织发布的 Java EE 标准之一,因此任何声称符合 JPA 标准的框架都遵循同样的架构,提供相同的访问API,这保证了基于JPA开发的企业应用能够经过少量的修改就能够在不同的JPA框架下运行

JPA是需要Provider来实现其功能的,Hibernate就是JPA Provider中很强的一个,应该说无人能出其右。从功能上来说,JPA就是Hibernate功能的一个子集。Hibernate 从3.2开始,就开始兼容JPA。Hibernate3.2获得了Sun TCK的JPA(Java Persistence API) 兼容认证。

出现的问题

工作中使用了jpa来持久化数据,调试的时候抛了这样的异常No entity found for query,找不到查询的实体,导致这个问题主要是使用了getSingleResult()这个方法返回一个实体,下面我们看下源码找下原因

getSingleResult实现源码

@SuppressWarnings({ "unchecked", "RedundantCast" })
	public X getSingleResult() {
		try {
			final Listresult = query.list();

			if ( result.size() == 0 ) {
				NoResultException nre = new NoResultException( "No entity found for query" );
				getEntityManager().handlePersistenceException( nre );
				throw nre;
			}
			else if ( result.size() > 1 ) {
				final SetuniqueResult = new HashSet(result);
				if ( uniqueResult.size() > 1 ) {
					NonUniqueResultException nure = new NonUniqueResultException( "result returns more than one elements" );
					getEntityManager().handlePersistenceException( nure );
					throw nure;
				}
				else {
					return uniqueResult.iterator().next();
				}
			}
			else {
				return result.get( 0 );
			}
		}
		catch (QueryExecutionRequestException he) {
			throw new IllegalStateException(he);
		}
		catch( TypeMismatchException e ) {
			throw new IllegalArgumentException(e);
		}
		catch (HibernateException he) {
			throw getEntityManager().convert( he );
		}
	}

分析解决问题

从源码实现中的if判断我们可以看到,如果你使用了getSingleResult()来返回实体,结果为0或者大于1都会抛出异常。除非你能肯定你查询的实体存在且只有一个,不然一般返回实体还是建议使用getResultList()取结果集,然后做相关处理,如:

Listlist=entityManager().createQuery("SELECT o FROM User o where o.userId=?1", User.class)
        		.setParameter(1, userId)
        		.getResultList();
        if(list!=null && list.size()!=0){
        	return list.get(0);
        }
        return null ;

先判断结果集大小,根据结果集大小再确定是返回null还是取第一条

以上就是jpa异常No entity found for query问题解决的详细内容,更多关于jpa异常No entity found for query的资料请关注编程网其它相关文章!

--结束END--

本文标题: jpa异常Noentityfoundforquery问题解决

本文链接: https://lsjlt.com/news/141710.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • jpa异常Noentityfoundforquery问题解决
    目录jpa是什么?出现的问题getSingleResult实现源码分析解决问题 jpa是什么? JPA全称Java Persistence API.JPA通过JDK 5.0注解或XM...
    99+
    2024-04-02
  • Spring JPA增加字段执行异常问题如何解决
    这篇文章主要介绍“Spring JPA增加字段执行异常问题如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Spring JPA增加字段执行异常问题如何解决”文章能帮助大家解...
    99+
    2023-07-02
  • java.lang.NullPointerException异常问题解决方案
    java.lang.NullPointerException异常原因是因为创建了一个引用类型的变量却没有指向任何对象而又去通过这个引用类型变量加点的形式去访问非静态的方法及属性。 给...
    99+
    2024-04-02
  • Oracle异常问题怎么解决
    解决Oracle异常问题的方法取决于异常的具体类型和原因。以下是一些常见的解决方法:1. 查看异常信息:首先,查看异常的详细信息,包...
    99+
    2023-09-26
    Oracle
  • java.Net.UnknownHostException异常处理问题解决
    同事新分的测试机resin启动的时候出现了Java.NET.UnknownHostException异常,问题原因是在系统的 /etc/Hostname中配置了主机名,而在...
    99+
    2023-05-14
    java.Net.UnknownHostException异常处理 java.Net.UnknownHostException
  • 解决Babylon.js中AudioContextwasnotallowedtostart异常问题
    目录BabylonJS中使用音频引擎时遇到错误示例源码(修改前):不能播放声音,在浏览器控制台示例源码(修改后):BabylonJS中使用音频引擎时遇到错误 当在BabylonJS...
    99+
    2023-05-14
    解决Babylon.js异常 Babylon.js异常
  • 如何解决UnsupportedOperationException异常问题
    目录UnsupportedOperationException异常下面开始正式讲解了综上所论UnsupportedOperationException——操作...
    99+
    2023-05-20
    UnsupportedOperationException异常 UnsupportedOperationException 解决UnsupportedOperationException异常
  • 如何解决java.lang.OutOfMemoryError: Metaspace异常问题
    小编给大家分享一下如何解决java.lang.OutOfMemoryError: Metaspace异常问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!介绍 M...
    99+
    2023-06-14
  • laravel中异常问题怎么解决
    这篇文章主要讲解了“laravel中异常问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“laravel中异常问题怎么解决”吧!laravel中的异常有:1、“E_ERROR”致命运...
    99+
    2023-07-02
  • 解决偶现的MissingServletRequestParameterException异常问题
    目录概述排查过程结论概述 最近遇到一个偶现的问题,在向服务端请求的时候,偶尔会出现异常,在请求中的query String 传递了参数,却出现了异常MissingServletReq...
    99+
    2024-04-02
  • JVM 异常退出的问题解决
    我公司的J2EE应用程序服务器(Borland Enterprise Server )有段时间老是会重新启动(间隔时间很断)。开始我以为是JVM的垃圾内存搜集器在工作导致的JVM异常退出。但是最近的一段时间这个现象频繁发生。有时候一天又好几...
    99+
    2023-06-03
  • 解决UnsupportedOperationException异常问题的方法
    本篇文章和大家了解一下解决UnsupportedOperationException异常问题的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。目录UnsupportedOperationException异常下面开始正...
    99+
    2023-07-06
  • WCF常见异常问题的解决方法
    这篇文章主要讲解了“WCF常见异常问题的解决方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“WCF常见异常问题的解决方法”吧!WCF还是比较常用的,于是我研究了一下WCF,在这里拿出来和大...
    99+
    2023-06-17
  • 怎么解决C++异常问题处理
    今天就跟大家聊聊有关怎么解决C++异常问题处理,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。处理C++异常问题会在语言级别上遇到少许隐含限制,但在某些情况下,您可以绕过它们。学习各种...
    99+
    2023-06-17
  • 解决Tomcat启动报异常java.lang.ClassNotFoundException问题
    目录Tomcat启动报异常java.lang.ClassNotFoundException解决方法总结Tomcat启动报异常java.lang.ClassNotFoundExcept...
    99+
    2023-01-09
    Tomcat启动报异常 java.lang.ClassNotFoundException Tomcat启动异常
  • java.Net.UnknownHostException异常处理问题怎么解决
    这篇文章主要介绍了java.Net.UnknownHostException异常处理问题怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇java.Net.UnknownHostException异常处理问...
    99+
    2023-07-05
  • SpringBoot全局异常问题如何解决
    这篇文章主要介绍“SpringBoot全局异常问题如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringBoot全局异常问题如何解决”文章能帮助大家解决问题。SpringBoot 是为了...
    99+
    2023-07-06
  • plsql版本异常问题怎么解决
    PL/SQL版本异常通常是由数据库版本不兼容或PL/SQL代码中使用的语法在当前数据库版本中不支持引起的。以下是解决PL/SQL版本...
    99+
    2024-04-09
    plsql
  • jpa entitymanager缓存问题如何解决
    JPA EntityManager的缓存问题可以通过以下几种方式解决:1. 清除缓存:可以使用EntityManager的clear...
    99+
    2023-10-18
    jpa
  • 服务器常见的异常问题怎么解决
    服务器常见的异常问题解决方法:1、服务器系统蓝屏、频繁死机、重启、反映速度迟钝问题,检查是否感染了病毒,是则及时进行杀毒;2、服务器远程桌面连接超出最大连接数问题,重启服务器或用mstsc/console指令进行强行登陆;3、无法删除文件问...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作