Te recomendamos que revises esta solución en un ambiente controlado antes de pasarlo a producción, saludos.
Solución:
Los repositorios en Spring Data son independientes de la fuente de datos, lo que significa que JpaRepository
y ElasticsearchRepository
ambos se enrollan en Repository
interfaz. Cuando este sea el caso, la configuración automática de Spring Boot hará que Spring Data JPA intente configurar un bean para cada repositorio en el proyecto que herede cualquier repositorio base de Spring Data Commons.
Para solucionar este problema, debe mover su repositorio JPA y el repositorio de Elasticsearch a paquetes separados y asegurarse de anotar su @SpringBootApplication
clase de aplicación con:
@EnableJpaRepositories
@EnableElasticsearchRepositories
Luego, debe especificar dónde están los repositorios para cada anotación habilitada. Esto termina pareciéndose a:
@SpringBootApplication
@EnableJpaRepositories("com.izeye.throwaway.data")
@EnableElasticsearchRepositories("com.izeye.throwaway.indexing")
public class Application
public static void main(String[] args)
SpringApplication.run(Application.class, args);
Luego, su aplicación podrá desambiguar qué repositorios están destinados a qué proyecto Spring Data.
Puedes usar así:
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(excludeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, value = ElasticsearchCrudRepository.class))
@EnableElasticsearchRepositories(includeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, value = ElasticsearchCrudRepository.class))
public class DataConfiguration
...
O en SpringBoot:
@SpringBootApplication
@EnableJpaRepositories(excludeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, value = ElasticsearchCrudRepository.class))
@EnableElasticsearchRepositories(includeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, value = ElasticsearchCrudRepository.class))
public class MyApplication
...
Calificaciones y comentarios
Si guardas algún recelo y disposición de progresar nuestro sección eres capaz de escribir una crónica y con gusto lo interpretaremos.