不知道为什么返回string就一直都出异常说没有找到result map类型的areaUser,可是我也没用areaUser这个对象。而且我查询使用的都是parameterType和resultType呀,不知道问题出现在哪里,请大神帮忙 !
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd" >
<mapper namespace="com.boco.eoms.portal.user.mapper.AreaUserMapper">
<select id="selectAreaIdByAreaName" parameterType="string" resultType="string">
SELECT AREAID FROM PORTAL_SYSTEM_AREA WHERE AREANAME = #{areaName}
</select>
<!-- <insert id="addAreaUserInfo" parameterType="java.util.List">
INSERT INTO PORTAL_SYSTEM_AREA_USER
(ID,AREA_ID,USER_ID,AREA_NAME,USER_NAME,CREATE_TIME)
<foreach close=")" collection="list" item="item" index="index"
open="(" separator="union all">
select
#{item.id,jdbcType=VARCHAR},
#{item.areaId,jdbcType=VARCHAR},
#{item.userId,jdbcType=VARCHAR},
#{item.areaName,jdbcType=VARCHAR},
#{item.userName,jdbcType=VARCHAR},
#{item.createTime,jdbcType=TIMESTAMP}
from dual
</foreach>
</insert> -->
</mapper>
//查询areaid
String areaName = element.elementText("L");
user.setAreaName(areaName);
String areaId = this.areaUserService.selectAreaIdByAreaName(areaName);
user.setAreaId(areaId);
org.apache.ibatis.builder.IncompleteElementException: Could not find result map com.boco.eoms.portal.user.model.AreaUser
at org.apache.ibatis.builder.MapperBuilderAssistant.setStatementResultMap(MapperBuilderAssistant.java:346)
at org.apache.ibatis.builder.MapperBuilderAssistant.addMappedStatement(MapperBuilderAssistant.java:284)
at org.apache.ibatis.builder.xml.XMLStatementBuilder.parseStatementNode(XMLStatementBuilder.java:107)
at org.apache.ibatis.session.Configuration.buildAllStatements(Configuration.java:698)
at org.apache.ibatis.session.Configuration.hasStatement(Configuration.java:668)
at org.apache.ibatis.session.Configuration.hasStatement(Configuration.java:663)
at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:180)
at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:43)
at org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:58)
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:51)
at com.sun.proxy.$Proxy22.selectAreaIdByAreaName(Unknown Source)
at com.boco.eoms.portal.user.service.impl.AreaUserServiceImpl.selectAreaIdByAreaName(AreaUserServiceImpl.java:26)
at com.boco.eoms.portal.user.controller.UserInterfaceController.addUserInfo(UserInterfaceController.java:80)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:180)
at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96)
at org.apache.cxf.jaxws.AbstractJAXWSMethodInvoker.invoke(AbstractJAXWSMethodInvoker.java:178)
at org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:68)
at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:75)
at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:57)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272)
at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:239)
at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:248)
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:222)
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:153)
at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:167)
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:286)
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:206)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:262)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2517)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2506)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.IllegalArgumentException: Result Maps collection does not contain value for com.boco.eoms.portal.user.model.AreaUser
at org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:797)
at org.apache.ibatis.session.Configuration.getResultMap(Configuration.java:550)
at org.apache.ibatis.builder.MapperBuilderAssistant.setStatementResultMap(MapperBuilderAssistant.java:344)
... 67 more
把resultTypeg改resultMap试试
@Param("areaName") 你加这个了么
你这句是怎么配置的?
配置下实体关系 不行就 不知道了
resultType 非基本类型,需要配置全路径吧
好久没有用这个了,这是我以前的一段代码:
SELECT a.AREA_SIMPLE_NAME
FROM T_AREA a
where a.AREA_CODE = #{areaCode,jdbcType=VARCHAR}
resultType 是因为没有配置 实体类与该xml的映射关系 你可以配置下 也可以配置
你的映射文件xml是在com.boco.eoms.portal.user.mapper这个包下吗?
在 Mybatis.xml 中配置这个xml了吗?
parameterType="string" 这个可以去掉吧
mapper没事,排查下其他问题吧,清理下缓存什么的,要不就重写一遍
select
#{item.id,jdbcType=VARCHAR},
#{item.areaId,jdbcType=VARCHAR},
#{item.userId,jdbcType=VARCHAR},
#{item.areaName,jdbcType=VARCHAR},
#{item.userName,jdbcType=VARCHAR},
#{item.createTime,jdbcType=TIMESTAMP}
from dual
这一段我没看懂,select a,b,c,d from table 是这样写把?
你这个看起来像是拿到time里面的具体值?
select 123,123,123,123 from x?
你是打算用insert select还是insert into values ?
resultType="java.lang.String" parameterType="java.lang.String"
问题已经解决了,因为我在另外一个mapper文件中有一个resultMap,而且这个resultMap没有配置。配置的是resultMap的话在mapp文件加载的时候会有验证的,因此并不是现在贴出来的这个查询语句有什么错误。谢谢大家!