2013-01-08 12 views
8

Ho molti problemi con spring e mybatis. Questa è la mia configurazione di primavera: ho la stessa configurazione e ComuneMapper.java e ComuneMapper.xml rimangono nelle stesse cartelle. ma ho comunque questo errore Qualcuno center meeeeemybatis IllegalArgumentException: La raccolta di istruzioni mappate non contiene il valore

<?xml version="1.0" encoding="UTF-8"?> 
<beans 
    xmlns="http://www.springframework.org/schema/beans" 
    xmlns:aop="http://www.springframework.org/schema/aop" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:webflow="http://www.springframework.org/schema/webflow-config" 
    xmlns:util="http://www.springframework.org/schema/util" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:mvc="http://www.springframework.org/schema/mvc" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 
     http://www.springframework.org/schema/aop 
     http://www.springframework.org/schema/aop/spring-aop-2.5.xsd 
     http://www.springframework.org/schema/context 
     http://www.springframework.org/schema/context/spring-context-2.5.xsd 
     http://www.springframework.org/schema/webflow-config 
     http://www.springframework.org/schema/webflow-config/spring-webflow-config-2.0.xsd 
     http://www.springframework.org/schema/util 
     http://www.springframework.org/schema/util/spring-util-2.0.xsd 
     http://www.springframework.org/schema/mvc 
     http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> 

    <context:annotation-config /> 

    <!-- Scans the classpath of this application for @Components to deploy as beans --> 
    <context:component-scan 
     base-package="com.aieap" /> 

    <!-- Configures the @Controller programming model --> 
    <mvc:annotation-driven /> 


    <!-- Configurazione Spring MVC View Resolver --> 
    <bean 
     id="viewResolver" 
     class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
     <property 
      name="viewClass" 
      value="org.springframework.web.servlet.view.JstlView" /> 
     <property 
      name="prefix" 
      value="/jsp/" /> 
     <property 
      name="suffix" 
      value=".jsp" /> 
    </bean> 

    <!-- Flow Handler Adapter --> 
    <bean 
     class="org.springframework.webflow.mvc.servlet.FlowHandlerAdapter"> 
     <property 
      name="flowExecutor" 
      ref="flowExecutor" /> 
    </bean> 

    <!-- Flow Handler Mapping --> 
    <bean 
     class="org.springframework.webflow.mvc.servlet.FlowHandlerMapping"> 
     <property 
      name="flowRegistry" 
      ref="flowRegistry" /> 
    </bean> 

    <!-- Flow Executor --> 
    <webflow:flow-executor 
     id="flowExecutor" /> 

    <!-- Flow Registry --> 
    <webflow:flow-registry 
     id="flowRegistry" 
     flow-builder-services="flowBuilderServices"> 
     <!-- nonaut --> 
     <webflow:flow-location 
      id="home-nonaut" 
      path="/WEB-INF/flows/nonaut/home-nonaut.xml" /> 
     <webflow:flow-location 
      id="logout" 
      path="/WEB-INF/flows/nonaut/logout.xml" /> 

     <!-- aut --> 
     <webflow:flow-location 
      id="aut/home-aut" 
      path="/WEB-INF/flows/aut/home-aut.xml" /> 
     <webflow:flow-location 
      id="aut/nuova-domanda" 
      path="/WEB-INF/flows/aut/nuova-domanda.xml" /> 
     <webflow:flow-location 
      id="aut/invia-domanda" 
      path="/WEB-INF/flows/aut/invia-domanda.xml" /> 
     <webflow:flow-location 
      id="aut/nuovo-operatore-rer" 
      path="/WEB-INF/flows/aut/nuovo-operatore-rer.xml" /> 

    </webflow:flow-registry> 

    <webflow:flow-builder-services 
     id="flowBuilderServices" 
     view-factory-creator="viewFactoryCreator" /> 

    <bean 
     id="viewFactoryCreator" 
     class="org.springframework.webflow.mvc.builder.MvcViewFactoryCreator"> 
     <property 
      name="viewResolvers"> 
      <list> 
       <ref 
        bean="viewResolver" /> 
      </list> 
     </property> 
     <property 
      name="useSpringBeanBinding" 
      value="true" /> 
    </bean> 

    <import resource="jdbc-context.xml" /> 


</beans> 

jdbc-context.xm:

<?xml version="1.0" encoding="UTF-8"?> 
<beans 
    xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:p="http://www.springframework.org/schema/p" 
    xmlns:tx="http://www.springframework.org/schema/tx" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation=" 
      http://www.springframework.org/schema/beans 
      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
      http://www.springframework.org/schema/tx 
      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd 
      http://www.springframework.org/schema/context 
      http://www.springframework.org/schema/context/spring-context-3.0.xsd 
      "> 

    <context:property-placeholder 
     location="/WEB-INF/db.properties" /> 

    <!-- Enable annotation style of managing transactions --> 
    <tx:annotation-driven 
     transaction-manager="transactionManager" /> 

    <!-- Declare a datasource that has pooling capabilities --> 
    <bean 
     id="dataSource" 
     class="com.mchange.v2.c3p0.ComboPooledDataSource" 
     destroy-method="close" 
     p:driverClass="${jdbc.driver}" 
     p:jdbcUrl="${jdbc.url}" 
     p:user="${jdbc.username}" 
     p:password="$jdbc.password}" 
     p:acquireIncrement="10" 
     p:idleConnectionTestPeriod="60" 
     p:maxPoolSize="100" 
     p:maxStatements="50" 
     p:minPoolSize="10" /> 

    <!-- Declare a transaction manager --> 
    <bean 
     id="transactionManager" 
     class="org.springframework.jdbc.datasource.DataSourceTransactionManager" 
     p:dataSource-ref="dataSource" /> 


    <!-- define the SqlSessionFactory, notice that configLocation is not needed when you use MapperFactoryBean --> 
    <bean 
     id="sqlSessionFactory" 
     class="org.mybatis.spring.SqlSessionFactoryBean"> 
     <property 
      name="dataSource" 
      ref="dataSource" /> 
     <property 
      name="configLocation" 
      value="WEB-INF/mybatis/sqlmap-config.xml" /> 
    </bean> 

    <!-- scan for mappers and will automatically scan the whole classpath for xmls --> 
    <bean 
     class="org.mybatis.spring.mapper.MapperScannerConfigurer"> 
     <property name="sqlSessionFactory" ref="sqlSessionFactory" /> 
     <property name="basePackage" value="com.aieap.dao.mapper" /> 
    </bean> 

</beans> 

sqlmap-config.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE configuration 
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 
    "http://mybatis.org/dtd/mybatis-3-config.dtd"> 

<configuration> 
    <settings> 
     <!-- changes from the defaults --> 
     <setting name="lazyLoadingEnabled" value="false" /> 
    </settings> 
    <typeAliases> 
     <typeAlias type="com.aieap.model.Comuni" alias="comuni"/> 
    </typeAliases> 
</configuration> 

regolatore:

package com.aieap.web.controller; 

import java.util.ArrayList; 
import java.util.List; 

import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Controller; 
import org.springframework.ui.ModelMap; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.apache.log4j.Logger; 

import com.aieap.dao.mapper.ComuniMapper; 
import com.aieap.model.Comuni; 
import com.aieap.model.OperatoriRer; 

@Controller 
public class OperatoriRerController { 

    @Autowired ComuniMapper comuniDao; 


    private static final Logger logger = Logger.getLogger(OperatoriRerController.class); 



    @RequestMapping("/aut/nuovo-operatore-rer") 
     public ModelMap start() { 

     Comuni comuni = comuniDao.selectByPrimaryKey(new Long(1)); 
     System.out.print(comuni); 
     OperatoriRer op = new OperatoriRer(); 
     op.setNome("ciccio"); 
     op.setCognome("cappuccio"); 
     ModelMap model = new ModelMap(); 
     model.addAttribute("OperatoriRer",op); 
     return model; 
     } 


    @RequestMapping("/aut/search-comune") 
     public ModelMap searchcomune() { 
     List<Comuni> comuniList = new ArrayList <Comuni>() ;   
     ModelMap model = new ModelMap(); 
     model.addAttribute("ComunuList",comuniList); 
     return model; 
     } 
} 

questo è l'errore:

GRAVE: Servlet.service() for servlet [dispatch] in context with path [/aieap] threw exception [Request processing failed; nested exception is java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for com.aieap.dao.mapper.ComuniMapper.selectByPrimaryKey] with root cause 
java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for com.aieap.dao.mapper.ComuniMapper.selectByPrimaryKey 
    at org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:593) 
    at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:393) 
    at org.apache.ibatis.binding.MapperMethod.setupCommandType(MapperMethod.java:160) 
    at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:48) 
    at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:37) 
    at $Proxy9.selectByPrimaryKey(Unknown Source) 
    at com.aieap.web.controller.OperatoriRerController.start(OperatoriRerController.java:29) 
    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.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219) 
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132) 
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104) 
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:746) 
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:687) 
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) 
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925) 
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856) 
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:915) 
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:811) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) 
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:796) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:317) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:204) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:182) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:311) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
    at java.lang.Thread.run(Thread.java:662) 

per favore !!! qualcuno mi aiuti sono senza speranza !!!!!!!!!!!!!!!

Mi ero dimenticato. questo è ComuniMapper.java

package com.aieap.dao.mapper; 

import com.aieap.model.Comuni; 
import com.aieap.model.ComuniExample; 
import java.util.List; 
import org.apache.ibatis.annotations.Param; 

public interface ComuniMapper { 

    int countByExample(ComuniExample example); 
    int deleteByExample(ComuniExample example); 
    int deleteByPrimaryKey(Long idComune); 
    int insert(Comuni record); 
    int insertSelective(Comuni record); 
    List<Comuni> selectByExample(ComuniExample example); 
    Comuni selectByPrimaryKey(Long idComune); 

    /** 
    * This method was generated by MyBatis Generator. 
    * This method corresponds to the database table comuni 
    * 
    * @mbggenerated Tue Jan 08 16:52:16 CET 2013 
    */ 
    int updateByExampleSelective(@Param("record") Comuni record, @Param("example") ComuniExample example); 

    /** 
    * This method was generated by MyBatis Generator. 
    * This method corresponds to the database table comuni 
    * 
    * @mbggenerated Tue Jan 08 16:52:16 CET 2013 
    */ 
    int updateByExample(@Param("record") Comuni record, @Param("example") ComuniExample example); 

    /** 
    * This method was generated by MyBatis Generator. 
    * This method corresponds to the database table comuni 
    * 
    * @mbggenerated Tue Jan 08 16:52:16 CET 2013 
    */ 
    int updateByPrimaryKeySelective(Comuni record); 

    /** 
    * This method was generated by MyBatis Generator. 
    * This method corresponds to the database table comuni 
    * 
    * @mbggenerated Tue Jan 08 16:52:16 CET 2013 
    */ 
    int updateByPrimaryKey(Comuni record); 
} 

fine questo ComuniMapper.xml:

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > 
<mapper namespace="com.aieap.dao.mapper.ComuniMapper" > 
    <resultMap id="BaseResultMap" type="com.aieap.model.Comuni" > 
    <!-- 
     WARNING - @mbggenerated 
     This element is automatically generated by MyBatis Generator, do not modify. 
     This element was generated on Tue Jan 08 16:52:16 CET 2013. 
    --> 
    <id column="ID_COMUNE" property="idComune" jdbcType="BIGINT" /> 
    <result column="CODICE_ISTAT" property="codiceIstat" jdbcType="VARCHAR" /> 
    <result column="DESCRIZIONE" property="descrizione" jdbcType="VARCHAR" /> 
    <result column="CAP" property="cap" jdbcType="VARCHAR" /> 
    <result column="CODICE_PROVINCIA" property="codiceProvincia" jdbcType="BIGINT" /> 
    <result column="COMUNE_SIGLA" property="comuneSigla" jdbcType="VARCHAR" /> 
    <result column="COMUNE_CFIS" property="comuneCfis" jdbcType="VARCHAR" /> 
    </resultMap> 
    <sql id="Example_Where_Clause" > 
    <!-- 
     WARNING - @mbggenerated 
     This element is automatically generated by MyBatis Generator, do not modify. 
     This element was generated on Tue Jan 08 16:52:16 CET 2013. 
    --> 
    <where > 
     <foreach collection="oredCriteria" item="criteria" separator="or" > 
     <if test="criteria.valid" > 
      <trim prefix="(" suffix=")" prefixOverrides="and" > 
      <foreach collection="criteria.criteria" item="criterion" > 
       <choose > 
       <when test="criterion.noValue" > 
        and ${criterion.condition} 
       </when> 
       <when test="criterion.singleValue" > 
        and ${criterion.condition} #{criterion.value} 
       </when> 
       <when test="criterion.betweenValue" > 
        and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} 
       </when> 
       <when test="criterion.listValue" > 
        and ${criterion.condition} 
        <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," > 
        #{listItem} 
        </foreach> 
       </when> 
       </choose> 
      </foreach> 
      </trim> 
     </if> 
     </foreach> 
    </where> 
    </sql> 
    <sql id="Update_By_Example_Where_Clause" > 
    <!-- 
     WARNING - @mbggenerated 
     This element is automatically generated by MyBatis Generator, do not modify. 
     This element was generated on Tue Jan 08 16:52:16 CET 2013. 
    --> 
    <where > 
     <foreach collection="example.oredCriteria" item="criteria" separator="or" > 
     <if test="criteria.valid" > 
      <trim prefix="(" suffix=")" prefixOverrides="and" > 
      <foreach collection="criteria.criteria" item="criterion" > 
       <choose > 
       <when test="criterion.noValue" > 
        and ${criterion.condition} 
       </when> 
       <when test="criterion.singleValue" > 
        and ${criterion.condition} #{criterion.value} 
       </when> 
       <when test="criterion.betweenValue" > 
        and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} 
       </when> 
       <when test="criterion.listValue" > 
        and ${criterion.condition} 
        <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," > 
        #{listItem} 
        </foreach> 
       </when> 
       </choose> 
      </foreach> 
      </trim> 
     </if> 
     </foreach> 
    </where> 
    </sql> 
    <sql id="Base_Column_List" > 
    <!-- 
     WARNING - @mbggenerated 
     This element is automatically generated by MyBatis Generator, do not modify. 
     This element was generated on Tue Jan 08 16:52:16 CET 2013. 
    --> 
    ID_COMUNE, CODICE_ISTAT, DESCRIZIONE, CAP, CODICE_PROVINCIA, COMUNE_SIGLA, COMUNE_CFIS 
    </sql> 
    <select id="selectByExample" resultMap="BaseResultMap" parameterType="com.aieap.model.ComuniExample" > 
    <!-- 
     WARNING - @mbggenerated 
     This element is automatically generated by MyBatis Generator, do not modify. 
     This element was generated on Tue Jan 08 16:52:16 CET 2013. 
    --> 
    select 
    <if test="distinct" > 
     distinct 
    </if> 
    <include refid="Base_Column_List" /> 
    from comuni 
    <if test="_parameter != null" > 
     <include refid="Example_Where_Clause" /> 
    </if> 
    <if test="orderByClause != null" > 
     order by ${orderByClause} 
    </if> 
    </select> 
    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long" > 
    <!-- 
     WARNING - @mbggenerated 
     This element is automatically generated by MyBatis Generator, do not modify. 
     This element was generated on Tue Jan 08 16:52:16 CET 2013. 
    --> 
    select 
    <include refid="Base_Column_List" /> 
    from comuni 
    where ID_COMUNE = #{idComune,jdbcType=BIGINT} 
    </select> 
    <delete id="deleteByPrimaryKey" parameterType="java.lang.Long" > 
    <!-- 
     WARNING - @mbggenerated 
     This element is automatically generated by MyBatis Generator, do not modify. 
     This element was generated on Tue Jan 08 16:52:16 CET 2013. 
    --> 
    delete from comuni 
    where ID_COMUNE = #{idComune,jdbcType=BIGINT} 
    </delete> 
    <delete id="deleteByExample" parameterType="com.aieap.model.ComuniExample" > 
    <!-- 
     WARNING - @mbggenerated 
     This element is automatically generated by MyBatis Generator, do not modify. 
     This element was generated on Tue Jan 08 16:52:16 CET 2013. 
    --> 
    delete from comuni 
    <if test="_parameter != null" > 
     <include refid="Example_Where_Clause" /> 
    </if> 
    </delete> 
    <insert id="insert" parameterType="com.aieap.model.Comuni" > 
    <!-- 
     WARNING - @mbggenerated 
     This element is automatically generated by MyBatis Generator, do not modify. 
     This element was generated on Tue Jan 08 16:52:16 CET 2013. 
    --> 
    insert into comuni (ID_COMUNE, CODICE_ISTAT, DESCRIZIONE, 
     CAP, CODICE_PROVINCIA, COMUNE_SIGLA, 
     COMUNE_CFIS) 
    values (#{idComune,jdbcType=BIGINT}, #{codiceIstat,jdbcType=VARCHAR}, #{descrizione,jdbcType=VARCHAR}, 
     #{cap,jdbcType=VARCHAR}, #{codiceProvincia,jdbcType=BIGINT}, #{comuneSigla,jdbcType=VARCHAR}, 
     #{comuneCfis,jdbcType=VARCHAR}) 
    </insert> 
    <insert id="insertSelective" parameterType="com.aieap.model.Comuni" > 
    <!-- 
     WARNING - @mbggenerated 
     This element is automatically generated by MyBatis Generator, do not modify. 
     This element was generated on Tue Jan 08 16:52:16 CET 2013. 
    --> 
    insert into comuni 
    <trim prefix="(" suffix=")" suffixOverrides="," > 
     <if test="idComune != null" > 
     ID_COMUNE, 
     </if> 
     <if test="codiceIstat != null" > 
     CODICE_ISTAT, 
     </if> 
     <if test="descrizione != null" > 
     DESCRIZIONE, 
     </if> 
     <if test="cap != null" > 
     CAP, 
     </if> 
     <if test="codiceProvincia != null" > 
     CODICE_PROVINCIA, 
     </if> 
     <if test="comuneSigla != null" > 
     COMUNE_SIGLA, 
     </if> 
     <if test="comuneCfis != null" > 
     COMUNE_CFIS, 
     </if> 
    </trim> 
    <trim prefix="values (" suffix=")" suffixOverrides="," > 
     <if test="idComune != null" > 
     #{idComune,jdbcType=BIGINT}, 
     </if> 
     <if test="codiceIstat != null" > 
     #{codiceIstat,jdbcType=VARCHAR}, 
     </if> 
     <if test="descrizione != null" > 
     #{descrizione,jdbcType=VARCHAR}, 
     </if> 
     <if test="cap != null" > 
     #{cap,jdbcType=VARCHAR}, 
     </if> 
     <if test="codiceProvincia != null" > 
     #{codiceProvincia,jdbcType=BIGINT}, 
     </if> 
     <if test="comuneSigla != null" > 
     #{comuneSigla,jdbcType=VARCHAR}, 
     </if> 
     <if test="comuneCfis != null" > 
     #{comuneCfis,jdbcType=VARCHAR}, 
     </if> 
    </trim> 
    </insert> 
    <select id="countByExample" parameterType="com.aieap.model.ComuniExample" resultType="java.lang.Integer" > 
    <!-- 
     WARNING - @mbggenerated 
     This element is automatically generated by MyBatis Generator, do not modify. 
     This element was generated on Tue Jan 08 16:52:16 CET 2013. 
    --> 
    select count(*) from comuni 
    <if test="_parameter != null" > 
     <include refid="Example_Where_Clause" /> 
    </if> 
    </select> 
    <update id="updateByExampleSelective" parameterType="map" > 
    <!-- 
     WARNING - @mbggenerated 
     This element is automatically generated by MyBatis Generator, do not modify. 
     This element was generated on Tue Jan 08 16:52:16 CET 2013. 
    --> 
    update comuni 
    <set > 
     <if test="record.idComune != null" > 
     ID_COMUNE = #{record.idComune,jdbcType=BIGINT}, 
     </if> 
     <if test="record.codiceIstat != null" > 
     CODICE_ISTAT = #{record.codiceIstat,jdbcType=VARCHAR}, 
     </if> 
     <if test="record.descrizione != null" > 
     DESCRIZIONE = #{record.descrizione,jdbcType=VARCHAR}, 
     </if> 
     <if test="record.cap != null" > 
     CAP = #{record.cap,jdbcType=VARCHAR}, 
     </if> 
     <if test="record.codiceProvincia != null" > 
     CODICE_PROVINCIA = #{record.codiceProvincia,jdbcType=BIGINT}, 
     </if> 
     <if test="record.comuneSigla != null" > 
     COMUNE_SIGLA = #{record.comuneSigla,jdbcType=VARCHAR}, 
     </if> 
     <if test="record.comuneCfis != null" > 
     COMUNE_CFIS = #{record.comuneCfis,jdbcType=VARCHAR}, 
     </if> 
    </set> 
    <if test="_parameter != null" > 
     <include refid="Update_By_Example_Where_Clause" /> 
    </if> 
    </update> 
    <update id="updateByExample" parameterType="map" > 
    <!-- 
     WARNING - @mbggenerated 
     This element is automatically generated by MyBatis Generator, do not modify. 
     This element was generated on Tue Jan 08 16:52:16 CET 2013. 
    --> 
    update comuni 
    set ID_COMUNE = #{record.idComune,jdbcType=BIGINT}, 
     CODICE_ISTAT = #{record.codiceIstat,jdbcType=VARCHAR}, 
     DESCRIZIONE = #{record.descrizione,jdbcType=VARCHAR}, 
     CAP = #{record.cap,jdbcType=VARCHAR}, 
     CODICE_PROVINCIA = #{record.codiceProvincia,jdbcType=BIGINT}, 
     COMUNE_SIGLA = #{record.comuneSigla,jdbcType=VARCHAR}, 
     COMUNE_CFIS = #{record.comuneCfis,jdbcType=VARCHAR} 
    <if test="_parameter != null" > 
     <include refid="Update_By_Example_Where_Clause" /> 
    </if> 
    </update> 
    <update id="updateByPrimaryKeySelective" parameterType="com.aieap.model.Comuni" > 
    <!-- 
     WARNING - @mbggenerated 
     This element is automatically generated by MyBatis Generator, do not modify. 
     This element was generated on Tue Jan 08 16:52:16 CET 2013. 
    --> 
    update comuni 
    <set > 
     <if test="codiceIstat != null" > 
     CODICE_ISTAT = #{codiceIstat,jdbcType=VARCHAR}, 
     </if> 
     <if test="descrizione != null" > 
     DESCRIZIONE = #{descrizione,jdbcType=VARCHAR}, 
     </if> 
     <if test="cap != null" > 
     CAP = #{cap,jdbcType=VARCHAR}, 
     </if> 
     <if test="codiceProvincia != null" > 
     CODICE_PROVINCIA = #{codiceProvincia,jdbcType=BIGINT}, 
     </if> 
     <if test="comuneSigla != null" > 
     COMUNE_SIGLA = #{comuneSigla,jdbcType=VARCHAR}, 
     </if> 
     <if test="comuneCfis != null" > 
     COMUNE_CFIS = #{comuneCfis,jdbcType=VARCHAR}, 
     </if> 
    </set> 
    where ID_COMUNE = #{idComune,jdbcType=BIGINT} 
    </update> 
    <update id="updateByPrimaryKey" parameterType="com.aieap.model.Comuni" > 
    <!-- 
     WARNING - @mbggenerated 
     This element is automatically generated by MyBatis Generator, do not modify. 
     This element was generated on Tue Jan 08 16:52:16 CET 2013. 
    --> 
    update comuni 
    set CODICE_ISTAT = #{codiceIstat,jdbcType=VARCHAR}, 
     DESCRIZIONE = #{descrizione,jdbcType=VARCHAR}, 
     CAP = #{cap,jdbcType=VARCHAR}, 
     CODICE_PROVINCIA = #{codiceProvincia,jdbcType=BIGINT}, 
     COMUNE_SIGLA = #{comuneSigla,jdbcType=VARCHAR}, 
     COMUNE_CFIS = #{comuneCfis,jdbcType=VARCHAR} 
    where ID_COMUNE = #{idComune,jdbcType=BIGINT} 
    </update> 
</mapper> 

risposta

0

sto usando mybatis nello stesso modo come voi. Il tuo codice sembra a posto. Anche io non sono sicuro se c'è un problema con i tipi di mapping. Prova due seguenti suggerimenti per risolvere il problema:

  1. cambiamento di tipo Java per mybtis alias a) "java.lang.Long" -> "lungo", b) "com.aieap.model.Comuni" - > "comuni"

  2. tenta di aggiungere alias invece di mapping XML @ org.apache.ibatis.type.Alias ​​("Comuni") a com.aieap.model.Comuni, rimuovere typeAlias ​​xml, aggiungere la configurazione primavera your org.mybatis.spring.SqlSessionFactoryBean:

Buona fortuna, Martin

+0

grazie per la risposta, ma non funziona. Forse potrebbe esserci qualche problema nelle librerie: – user1671106

3

Ciao questo problema di solito è collegato alle posizioni del mapper. Quindi, cercare di impostare la proprietà mapperLocation nel fagiolo:

<property name="mapperLocations" 
value="classpath*:pathWhereYouHaveMapper/*Mapper.xml" /> 

Speranza che aiuta!

7

Ci possono essere diversi motivi ...!

  • -> sintassi SQL (forse una sola piccola query è un extra "" alla fine della selezione)

  • - problemi> Percorso di classe, non può risolvere le dipendenze vaso

  • -> Anche questo può venire a causa di un problema di codifica dei file o di caratteri xml illegali incorporati nel tuo file '* Mapper.xml'. (quindi fai attenzione al tuo editor ..!)

per lo più, è necessario utilizzare gli stessi nomi per.

  • interface = xxx.yyy.mappers.SettingMapper.class
  • file di mapping = /xxx/yyy/mappers/SettingMapper.xml
  • mapper namespace = xxx.yyy.mappers.SettingMapper
+1

Nel mio caso, stavo selezionando una stringa e inserendola in un oggetto datato. tipi di risultati non corrispondenti. modificato per selezionare una stringa in un campo stringa e risolto l'errore. –

+0

Sì, succede. Ci aspettiamo che ricada su ToString() ma non si innescherà. – mahesh

+0

'java.lang.IllegalArgumentException: La raccolta di istruzioni mappate non contiene valore per com.ct ...' Ho già risolto questo problema prima. Significa che la raccolta di istruzioni mappate che proviene dal file '* ModelMapper.xml' non contiene il metodo definito nel file' * ModelMapper.java'. Nel mio caso, a volte è causato dalla mancata corrispondenza tra la denominazione del file xml e il file java. – ZhaoGang

3

Questo di solito significa che mybatis non riesce a trovare la mappatura a cui si fa riferimento. Forse si è dimenticato di aggiungere il file * Mapper.xml a mybatis-config.xml (che è un file di configurazione standard per MyBatis)

<mappers> 
    <mapper resource="org/mybatis/builder/AuthorMapper.xml"/> 
</mappers> 

Tutte nella documentazione http://mybatis.github.io/mybatis-3/configuration.html#mappers

2

nel mio caso quello che è successo c'è stato un TYPO nel mio nome di metodo nel file di mapping xml. Quando ho cambiato il nome DAO, ho dimenticato di cambiare in xml, potrebbe aiutare qualcun altro.

+1

Anche 'parameterType' e' resultType' devono corrispondere esattamente dopo il refactoring. – DerMike

1

Duplicato id in mapper.xml genera anche tale eccezione. Spero che questo aiuti.

0

Ho avuto un problema simile. Poi ho trovato che tutte le richieste che hanno i mapping di query definiti su quel mapper.xml hanno lo stesso errore.

Può essere dovuto a una build errata di WAR o una distribuzione non corretta sul server. Comunque, ho cancellato quel file WAR e ri-distribuito di nuovo e ha funzionato!

0

Mi sono imbattuto anche in questa eccezione. Nel mio caso il file xml del mapper era presente in un JAR incluso nel classpath, ma in qualche modo non è stato trovato da MapperScannerConfigurer. Sono venuto a conoscenza di questo leggendo i registri. Dovresti leggere i log e controllare la riga del seguente formato per sapere se sono stati trovati dei mapper. Ho dovuto dare il percorso di root, dopo di che ha trovato il mio mapper.

PathMatchingResourcePatternResolver:423 - Resolved location pattern [classpath*:*.xml] to resources [URL [jar:file:/home/user/src/tomcat8/webapps/example/WEB-INF/lib/ExampleDao-1.0.0-SNAPSHOT.jar!/TestMapper.xml]] 
2

aggiunta alle altre risposte, si hanno anche per

Check for duplicate method names

Questo errore viene nel registro alla fine.

IllegalArgumentException: Mapped Statements collection does not contain value 

Ignorare il messaggio precedente e spostare semplicemente i registri e cercare il primo messaggio di errore nei registri. Il primo errore ho trovato era,

ERROR [main] mapper.MapperFactoryBean (MapperFactoryBean.java:83) - Error while adding the mapper 'interface com.xyz.mappers.UserMapper' to configuration. 
java.lang.IllegalArgumentException: Mapped Statements collection already contains value for com.xyz.mappers.UserMapper.getAllUserDetails 

L'errore indica chiaramente che il metodo getAllUserDetails esiste già nell'interfaccia UserMapper (con diverso numero di parametri). Anche la duplicazione dei nomi dei metodi genera questo errore. (La penalità per i codici copia-incolla): P

1

Ho riscontrato anche questo problema.Oltre alla possibilità della risposta di cui sopra provo a utilizzare in questo modo per risolvere il problema:

Il nome del metodo deve essere uguale a dao e mapper.xml, nel mio caso il nome del metodo non è lo stesso. Quindi devi essere sicuro che siano uguali.

Buona fortuna!