org.springframework.dao.EmptyResultDataAccessException: Incorrect result size: expected 1,actual 0 1

本文解析了 org.springframework.dao.EmptyResultDataAccessException 异常的原因,该异常通常出现在使用 Spring 的 JdbcTemplate 执行查询操作时,预期返回一条记录但实际上未找到数据的情况。文中提供了两种解决方案:一是采用 queryForList 方法代替 queryForObject 或 queryForMap;二是通过 try/catch 结构来捕获并处理此异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

org.springframework.dao.EmptyResultDataAccessException: Incorrect result size: expected 1,actual 0 10

org.springframework.dao.EmptyResultDataAccessException: Incorrect result size: expected 1, actual 0
请问是什么意思,如何解决????
xyh52040  |  浏览 16117 次  |举报
我有更好的答案
发布于2016-10-31 15:59 最佳答案

两种方案:

  1. 用queryForList方法替换queryForObject或者queryForMap,因为这两个方法必须要有值,不能为空。

  2. 把这个异常捕获,用try/catch,如下

向左转 | 向右转

雪飘时吻你 

采纳率:54% 擅长: 河南 许昌市 驻马店市

其他回答

这个查询的结果是null,没有数据所以就提示acual 为0.而查询的时候是期望查询有结果有记录,并且记录数是1. spring 这个查询中没有查询到数据就报错。解决方案就是要查询有结果,或者换一种查询方式。
热心网友 |  发布于2015-12-15 14:24
举报|  评论(1) 
21  3
fangletian | 2016-3-8 22:11
我想知道如果为空怎么处理! 回复
从orcale更换到mysql,springbatch运行偶尔会报错: org.springframework.dao.EmptyResultDataAccessException: Incorrect result size: expected 1, actual 0 at org.springframework.dao.support.DataAccessUtils.nullableSingleResult(DataAccessUtils.java:97) at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:784) at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:809) at org.springframework.batch.core.repository.dao.JdbcJobExecutionDao.synchronizeStatus(JdbcJobExecutionDao.java:308) at org.springframework.batch.core.repository.support.SimpleJobRepository.update(SimpleJobRepository.java:166) at sun.reflect.GeneratedMethodAccessor147.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:366) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:99) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212) at com.sun.proxy.$Proxy85.update(Unknown Source) at sun.reflect.GeneratedMethodAccessor147.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.batch.core.configuration.annotation.SimpleBatchConfiguration$PassthruAdvice.invoke(SimpleBatchConfiguration.java:127) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
03-28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值