2016-12-19 4 views
1

같은 스프링 부트 응용 프로그램에서 spring-data-mongodb와 spring-data-neo4j를 어떻게 사용합니까?spring-data-mongodb와 spring-data-neo4j를 함께 사용

내가 쉽게 하나 "시작하기"가이드 다음 다른,하지만 사용할 수 있습니다 최대한 빨리 그때 런타임 오류와 같은 얻을 MongoDB를 응용 프로그램에 Neo4J을 추가하려고 같이 나 '

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'application': Unsatisfied dependency expressed through field 'repository'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'bookRepository': Invocation of init method failed; nested exception is org.springframework.data.mapping.PropertyReferenceException: No property findAll found for type MongoBook! 

설정 최소 예제 https://github.com/afaulconbridge/myspring-mongo-neo

+0

봄 데이터 예제에서 확인하십시오. https://github.com/spring-projects/spring-data-examples/tree/master/multi-store. 이 예제는 다중 스프링 데이터 모듈이 함께 작동하는 방법에 대한 통찰력을 제공합니다. – Veeram

+1

스프링 데이터 MongoDB와 Neo4J가 동일한 패키지를 스캔하도록 강요하고 있습니까? 그렇다면 [이 오류] (https://jira.spring.io/browse/DATAES-57)가 표시됩니다. 링크 된 게시물은 문제를 해결하는 방법을 설명합니다. – manish

답변

0

@manish가 지적했듯이 Spring 데이터 MongoDB와 Spring Data Neo4J는 별도의 패키지를 스캔해야한다. 즉

@EnableMongoRepositories(basePackageClasses=MongoBook.class) 
@EnableNeo4jRepositories(basePackageClasses=NeoAuthor.class) 

예제 프로젝트를 https://github.com/afaulconbridge/myspring-mongo-neo에 해결책으로 업데이트했습니다.

0

JPA와 Neo4J를 함께 사용하는 try this project 수 있습니다. 구조는 기술적으로 Mongo와 함께 작동해야합니다. Mongo는 트랜잭션 개념을 지원하지 않으므로 각 Spring Data 프로젝트에 대한 명시 적 트랜잭션 관리자를 정의 할 필요가 없을 수도 있습니다.

0

당신은 includeFilters() 설명에서 (대부분의 경우 includeFilters이 충분하다)

@EnableMongoRepositories(basePackageClasses=MongoBook.class, 
    includeFilters ={@ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, 
    classes = {MongoRepository.class})) 

@EnableNeo4jRepositories(basePackageClasses=NeoAuthor.class, 
    includeFilters ={@ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, 
    classes = {NeoRepository.class})) 

심지어 같은 패키지에 각각 excludeFiltersincludeFilters 매개 변수를 사용할 수 있어야

유형을받을 수 있습니다 지정 컴포넌트 스캔. 또한 은 {#basePackages()}의 모든 항목에서 후보 구성 요소 세트를 기본 패키지에서 주어진 필터 또는 필터와 일치하는 모든 항목으로 좁 힙니다.