Idea inspects batis mapper bean wrong

12,045

Solution 1

Updated MyBatis plugin is fixed and does not have this issue.

Solution 2

@Repository
@Mapper 
public interface ApplicationMapper {

will do the trick

Solution 3

Another way is to add @Component or @Repository to your mapper interface.

Such as:

@Repository
public interface ApplicationMapper {
    //...
}

Solution 4

I got the same problem. In my Intelli J Inspection Error,

Could not autowire. No beans of 'ApplicationMapper' type found. less... (Ctrl+F1) Checks autowiring problems in a bean class.

in my case, disabled inspections. (Alt + Enter quick fix or change settings)

Settings - Editor - Inspections - Spring - Spring Core - Code - Autowiring for Bean Class - disable

(2015.04.27 update) After installed myBatis plugin, I had solved this problem, too

Solution 5

How about defining a new annotation for convenience:

@Repository
@Mapper
public @interface MyMapper{

}

@MyMapper
public interface ApplicationMapper {
    //...
}
Share:
12,045
Oleksandr Cherniaiev
Author by

Oleksandr Cherniaiev

Updated on June 20, 2022

Comments

  • Oleksandr Cherniaiev
    Oleksandr Cherniaiev almost 2 years

    There's web project with Spring and MyBatis. I use IntelliJ IDEA for development. IDEA cannot correctly inspect MyBatis beans and produces annoying underscorings, though link to Data Access Object is present.

    Inspection comment:

     Could not autowire. No beans of 'ApplicationMapper' type found.
    

    My Spring and MyBatis configurations: Spring:

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="configLocation" value="classpath:spring/mybatis-config.xml"/>
    
    </bean>
    
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.db.gbs.gbsapps.rds.backend.model.integration.mapping"/>
    </bean>
    

    mybatis-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>
        <mappers>
            <mapper resource="mybatis/ApplicationMapper.xml"/>
        </mappers>
    </configuration>
    

    Is there a way to fix this small issue?