Jordi
Jordi

Reputation: 23187

Spring boot: @Repository class not found to inject

This is my Spring boot application related code:

@ComponentScan({"net.gencat.transversal.espaidoc.scheduler", "net.gencat.transversal.espaidoc.backoffice"})
public class SchedulerApplication {//...}

By other hand, I've a repository on package net.gencat.transversal.espaidoc.backoffice.dao:

@Repository
public interface DocumentDAO extends CrudRepository<Document, String> {

}

So, I've a service with a DocumentDAO dependency:

@Service
public class DocumentServiceBackOffice {

    private DocumentDAO documentDAO;

    public DocumentServiceBackOffice(DocumentDAO documentDAO) {
                this.documentDAO = documentDAO;
    }
}

However, I'm getting this message:

NoSuchBeanDefinitionException: No qualifying bean of type 'net.gencat.transversal.espaidoc.backoffice.dao.DocumentDAO' available

I've also tried adding @EnableJpaRepositories, but it still doesn't work.

Any ideas?

EDIT

This is my SpringApplication class:

package net.gencat.transversal.espaidoc;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jmx.JmxAutoConfiguration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Import;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.scheduling.annotation.EnableScheduling;

import net.gencat.transversal.espaidoc.common.config.FrontOfficeProperties;
import net.gencat.transversal.espaidoc.common.config.RedisConfiguration;

@SpringBootApplication(exclude = JmxAutoConfiguration.class)
@EnableConfigurationProperties({
    FrontOfficeProperties.class
})
@Import(RedisConfiguration.class)
@EnableScheduling
// @ComponentScan("net.gencat.transversal.espaidoc")
//@EnableJpaRepositories
public class SchedulerApplication {

    public static void main(String[] args) {
        SpringApplication.run(SchedulerApplication.class, args);
    }
}

EDIT2:

I've just realized on spring logs that there's some issue related with DocumentDAO:

--- [ main] .RepositoryConfigurationExtensionSupport : Spring Data JPA - Could not safely identify store assignment for repository candidate interface net.gencat.transversal.espaidoc.backoffice.dao.DocumentDAO.

Upvotes: 0

Views: 2259

Answers (1)

shazin
shazin

Reputation: 21883

Try adding the following:

@EnableJpaRepositories(basePackages="net.gencat.transversal.espaidoc.backoffice.dao")
public class SchedulerApplication

Upvotes: 1

Related Questions