I had the following error messages thrown when registering the mapper classes on my server startup,
[artifact:mvn] 2016-05-07 11:39:21,708 [ERROR] org.mybatis.spring.mapper.MapperFactoryBean - Error while adding the mapper 'interface com.sample.mappers.UserMapper' to configuration.
[artifact:mvn] java.lang.IllegalArgumentException: Mapped Statements collection already contains value for com.sample.mappers.UserMapper.getAllUsers
[artifact:mvn] at org.apache.ibatis.session.Configuration$StrictMap.put(Configuration.java:802)
[artifact:mvn] at org.apache.ibatis.session.Configuration$StrictMap.put(Configuration.java:774)
[artifact:mvn] at org.apache.ibatis.session.Configuration.addMappedStatement(Configuration.java:598)
[artifact:mvn] at org.apache.ibatis.builder.MapperBuilderAssistant.addMappedStatement(MapperBuilderAssistant.java:300)
[artifact:mvn] at org.apache.ibatis.builder.annotation.MapperAnnotationBuilder.parseStatement(MapperAnnotationBuilder.java:313)
[artifact:mvn] at org.apache.ibatis.builder.annotation.MapperAnnotationBuilder.parse(MapperAnnotationBuilder.java:128)
[artifact:mvn] at org.apache.ibatis.binding.MapperRegistry.addMapper(MapperRegistry.java:72)
[artifact:mvn] at org.apache.ibatis.session.Configuration.addMapper(Configuration.java:671)
[artifact:mvn] at org.mybatis.spring.mapper.MapperFactoryBean.checkDaoConfig(MapperFactoryBean.java:81)
[artifact:mvn] at org.springframework.dao.support.DaoSupport.afterPropertiesSet(DaoSupport.java:44)
I used annotations for my mapper interfaces and there's no xml configuration.
Below is my UserMapper interface,
public interface UserMapper {
@Select("SELECT * FROM customer")
List<User> getAllUsers();
@Select("SELECT * FROM customer where userId = #{userId} ")
List<User> getAllUsers(Long userId);
}