Tôi đang gặp cấu hình nàyMongo: kho không còn hoạt động
<?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>
nơi trong gói com.x.record.persistence.impl
Tôi có một thành phần cần kho từ com.x.record.persistence.repo
.
này đang làm việc cho phiên bản mùa xuân-dữ liệu MongoDB 1.5.2.RELEASE
Nếu tôi nâng cấp lên bất kỳ phiên bản lớn hơn 1.6.0.RELEASE (Tôi đã thử với 1.6.2 và 1.7.0) này công việc ngắn hạn. Dường như việc quét kho lưu trữ mongo không hoạt động và tôi gặp lỗi:
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)}
Bất kỳ ý tưởng nào?
UPDATE: Nếu tôi sử dụng MongoRepository thay vì PagingAndSortingRepository nó hoạt động:
NÀY KHÔNG LÀM VIỆC (với 1.6.x trở lên): public interface RecordRepository kéo dài PagingAndSortingRepository, RecordRepositoryCustom {
Page<Record> findByOrgHierarchy(String orgId, Pageable pageable);
Record findOneByIdAndOrgHierarchyIn(String id, Collection<String> orgIds);
int countByGsRunId(String gsRunId);
}
CÔNG TRÌNH NÀY (với 1.6.x trở lên): giao diện công cộng RecordRepository mở rộng MongoRepository, RecordRepositoryCustom {
Page<Record> findByOrgHierarchy(String orgId, Pageable pageable);
Record findOneByIdAndOrgHierarchyIn(String id, Collection<String> orgIds);
int countByGsRunId(String gsRunId);
}
Điều wirdest là tôi có Repos khác mà làm việc với PagingAndSortingRepository
noAuthRecordPersistenceService của bạn nằm ở đâu? Nó có thể là bối cảnh của bạn: quét thành phần quá hẹp và dịch vụ đó không được khởi tạo vào mùa xuân. – sfat
Tôi đã thử cấu hình này và nó hoạt động với cả hai phiên bản: 1.5.X và 1.6.X. Bạn có thể chia sẻ nhiều dữ liệu hơn: pom.xml, kho lưu trữ và mã dịch vụ, v.v ... không? – jfcorugedo