2017-08-07 50 views
0

我學習春天開機+的MyBatis + MySQL的,我只是使用XML作爲MyBatis的映射器編寫的demo,但是遇到錯誤:MyBatis的配置錯誤:BuilderException

nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. 
Cause: java.lang.IllegalArgumentException: Result Maps collection already contains value 
for mappers.UserMapper.UserResultMap 

我的XML映射爲:

<!DOCTYPE mapper 
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 
<mapper namespace="mappers.UserMapper"> 
    <resultMap id="UserResultMap" type="hello.User"> 
     <id column="id" property="id" /> 
     <result column="name" property="name" /> 
     <result column="email" property="email" /> 
    </resultMap> 
    <select id="findAllUsers" resultMap="UserResultMap"> 
     select id, name, email from users 
    </select> 
    <select id="findUserById" resultMap="UserResultMap"> 
     select id, name, email from users WHERE id=#{id} 
    </select> 
    <insert id="insertUser" parameterType="hello.User" useGeneratedKeys="false" keyProperty="id"> 
     insert into users(name,email) values(#{name},#{email}) 
    </insert> 
</mapper> 

我該如何解決?

回答

0

錯誤是resultType id必須是唯一的。

<resultMap id="UserResultMap1" type="hello.User"> 
     <id column="id" property="id" /> 
     <result column="name" property="name" /> 
     <result column="email" property="email" /> 
    </resultMap> 
<resultMap id="UserResultMap2" type="hello.User"> 
     <id column="id" property="id" /> 
     <result column="name" property="name" /> 
     <result column="email" property="email" /> 
    </resultMap>