2015-03-31 16 views
8

ich diese KonfigurationMongo: Repositories nicht mehr funktioniert

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:mongo="http://www.springframework.org/schema/data/mongo" 
    xsi:schemaLocation="http://www.springframework.org/schema/context 
     http://www.springframework.org/schema/context/spring-context.xsd 
     http://www.springframework.org/schema/data/mongo 
     http://www.springframework.org/schema/data/mongo/spring-mongo.xsd 
     http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans.xsd"> 

    <mongo:repositories base-package="com.x.record.persistence.repo" 
     mongo-template-ref="mongoTemplate" /> 

    <context:component-scan base-package="com.x.record.persistence.impl" /> 

</beans> 

wo im Paket com.x.record.persistence.impl ich eine Komponente habe, die das Repository von com.x.record.persistence.repo muss.

Dies funktioniert für den Frühling-data-mongodb Version 1.5.2.RELEASE

Wenn ich mehr als 1.6.0.RELEASE auf die jede Version aktualisieren (Ich habe versucht, mit 1.6.2 und 1.7.0) dieses funktioniert nicht mehr. Es ist, als ob der Mongo-Repository Scan funktioniert nicht und ich erhalte die Fehlermeldung:

org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'noAuthRecordPersistenceService': Injection of autowired dependencies failed; 
nested exception is org.springframework.beans.factory.BeanCreationException: 
Could not autowire field: private com.x.record.persistence.repo.RecordRepository com.x.record.persistence.impl.NoAuthRecordPersistenceServiceImpl.repo; 
nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: 
No qualifying bean of type [com.x.record.persistence.repo.RecordRepository] found for dependency: 
expected at least 1 bean which qualifies as autowire candidate for this dependency. 
Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} 

Irgendwelche Ideen?

UPDATE: Wenn ich MongoRepository statt PagingAndSortingRepository verwenden es funktioniert:

dies nicht funktioniert (mit 1.6.x und höher): öffentliche Schnittstelle RecordRepository erweitert PagingAndSortingRepository, RecordRepositoryCustom {

Page<Record> findByOrgHierarchy(String orgId, Pageable pageable); 

    Record findOneByIdAndOrgHierarchyIn(String id, Collection<String> orgIds); 

    int countByGsRunId(String gsRunId); 

} 

Dies funktioniert (mit 1.6.x und höher): öffentliche Schnittstelle RecordRepository erweitert MongoRepository, RecordRepositoryCustom {

Page<Record> findByOrgHierarchy(String orgId, Pageable pageable); 

    Record findOneByIdAndOrgHierarchyIn(String id, Collection<String> orgIds); 

    int countByGsRunId(String gsRunId); 

} 

Die wirdest Sache ist, dass ich andere repos, die

+0

Wo befindet sich Ihr noAuthRecordPersistenceService? Es könnte Ihr Kontext sein: component-scan ist zu eng und dieser Service wird nicht im Frühling instanziiert. – sfat

+0

Ich habe diese Konfiguration versucht und es funktioniert für mich mit beiden Versionen: 1.5.X und 1.6.X. Können Sie mehr Daten teilen: pom.xml, Repository und Service-Code, etc ...? – jfcorugedo

Antwort

0

Try Probe here mit PagingAndSortingRepository Arbeit, wenn das funktioniert in neueste Version dann ihrem möglich, dass einige Komponenten von Ihnen noch eine ältere Version und einen inkompatiblen Zustand mit möglicherweise existiert.

Fügen Sie Ihren vollständigen Code ein, damit die Community das Problem testen kann.