[ssm]Result Maps collection does not contain value for adminMap

Aierk_lk 2019-08-22 11:46:53
错误信息

DEBUG - Creating a new SqlSession
DEBUG - SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@1ceb670] was not registered for synchronization because synchronization is not active
DEBUG - Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@1ceb670]
DEBUG - Resolving exception from handler [public java.lang.String com.aierk.game.action.AdminAction.loginAdmin(java.lang.String,java.lang.String)]: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: java.lang.IllegalArgumentException: Result Maps collection does not contain value for adminMap
### Cause: java.lang.IllegalArgumentException: Result Maps collection does not contain value for adminMap
DEBUG - Resolving exception from handler [public java.lang.String com.aierk.game.action.AdminAction.loginAdmin(java.lang.String,java.lang.String)]: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: java.lang.IllegalArgumentException: Result Maps collection does not contain value for adminMap
### Cause: java.lang.IllegalArgumentException: Result Maps collection does not contain value for adminMap
DEBUG - Resolving exception from handler [public java.lang.String com.aierk.game.action.AdminAction.loginAdmin(java.lang.String,java.lang.String)]: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: java.lang.IllegalArgumentException: Result Maps collection does not contain value for adminMap
### Cause: java.lang.IllegalArgumentException: Result Maps collection does not contain value for adminMap
DEBUG - Could not complete request
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: java.lang.IllegalArgumentException: Result Maps collection does not contain value for adminMap
### Cause: java.lang.IllegalArgumentException: Result Maps collection does not contain value for adminMap
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:365)
at $Proxy17.selectList(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:195)
at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:139)
at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:76)
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)
at $Proxy23.login(Unknown Source)
at com.aierk.game.service.impl.AdminServiceImpl.login(AdminServiceImpl.java:26)
at com.aierk.game.action.AdminAction.loginAdmin(AdminAction.java:43)
at com.aierk.game.action.AdminAction$$FastClassByCGLIB$$5c2554a4.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:701)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80)

Admin pojo

private int adminId;
private String adminAccount;
private String adminPwd;
private String adminPhone;
private Date createTime;

AdminMapper

@Results(id="adminMap",value={
@Result(id=true,column="admin_id",property="adminId"),
@Result(column="admin_account",property="adminAccount"),
@Result(column="admin_pwd",property="adminPwd"),
@Result(column="admin_phone",property="adminPhone"),
@Result(column="create_time",property="createTime")
})

@Options(statementType=StatementType.CALLABLE)
@Select({"{ call Aierk.proc_login_admin(#{t_result,mode=OUT,jdbcType=CURSOR,javaType=java.sql.ResultSet,resultMap=adminMap},#{account, mode=IN, jdbcType=VARCHAR},#{pwd, mode=IN, jdbcType=VARCHAR})}"})
public List<Admin> login (Map<String, Object> param);

AdminAction

@Controller
@SessionAttributes(value = "adminInfo", types = Admin.class)
public class AdminAction {
@RequestMapping(value="/loginAdmin.do")
public String loginAdmin(String adminAccount, String adminPwd){
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("account", adminAccount);
map.put("pwd",adminPwd);
map.put("t_result", OracleTypes.CURSOR);
adminService.login(map);
List<Admin> list = (List<Admin>) map.get("t_result");
if (list != null && list.size() > 0) {
// 存储到Session

System.out.println(map + "登陆成功");
return "success";
} else {
System.out.println(map + "登陆成功");
return "fail";
}
}
}

SpringMVC

<!-- 自动扫描控制器的类 -->
<context:component-scan base-package="com.aierk.game" />
<aop:aspectj-autoproxy />
<!-- 类型转换 -->
<mvc:annotation-driven />

web.xml

<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/</url-pattern>
</filter-mapping>

Oracle 存储过程

create or replace
procedure proc_login_admin (p_cur_ref out sys_refcursor, proceAccount in varchar2, procePwd in varchar2)
as
v_sql varchar2(200);
begin
v_sql := ' select * from t_admin where admin_Account = '''|| proceAccount ||''' and admin_Pwd = '''|| procepwd ||''' ';
open p_cur_ref for v_sql;
end proc_login_admin;

Admin表
ADMIN_ACCOUNT
ADMIN_ID
ADMIN_PHONE
ADMIN_PWD
CREATE_TIME

Mybatis3.4.6
报错Result Maps collection does not contain value for adminMap
...全文
232 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Aierk_lk 2019-08-23
  • 打赏
  • 举报
回复
引用 2 楼 a975719898的回复:
可一把返回值直接改成javaType 指向你返回值那个Admin泛型的路径
已经解决了,不用注解,换了xml写就好了。
阿豆响当当 2019-08-22
  • 打赏
  • 举报
回复
可一把返回值直接改成javaType 指向你返回值那个Admin泛型的路径
阿豆响当当 2019-08-22
  • 打赏
  • 举报
回复
检查一下adminMap 是否正常映射,重点检查 结果集映射与该方法返回值之间的转换过程

51,410

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧