2012-09-05 4 views
1

SDN을 처음 사용하기 때문에 최대 절전 모드로 크로스 저장소 지속성을 수행하려고합니다. 웹 사이트에 제공된 tutorial에는 동일한 예가 나와 있습니다. github도 확인했습니다. 질문이 두 개 있습니다.스프링 데이터 Neo4j - 크로스 스토어 지속성

  1. 문서 또는 예제에서 언급 한 것처럼 xml 구성을 수행 할 수 없습니다. <neo4j:config/>entityManagerFactory을 지원하지 않습니다. 내 가정은 entityManagerFactory에 대한 설정자가없는 기본값 인 Neo4jConfiguration을 생성한다는 것입니다. 내가 발견 한 해결 방법은 CrossStoreNeo4jConfiguration bean을 정의하는 것입니다.

    @Bean 
    public CrossStoreNeo4jConfiguration crossStoreNeo4jConfiguration(){ 
    CrossStoreNeo4jConfiguration configuration = new CrossStoreNeo4jConfiguration(); 
    configuration.setEntityManagerFactory(entityManagerFactory); 
    configuration.setGraphDatabaseService(graphDatabaseService); 
    return configuration; 
    } 
    

    어떻게 내에서이 작업을 수행하는 <neo4j:config/>

  2. 당신이 neo4j:repositories를 사용하여 저장소를 정의 할 때 neo4j-template-ref를 사용하여 저장소에 Neo4jTemplate를 참조 할 때 어떻게됩니까? 목적은 무엇입니까?

UDPATE

<neo4j:config/> wasCrossStoreNeo4jConfiguration를 생성 할 수 없습니다 이유 난 의존성 스프링 데이터 neo4j - 크로스 store` 누락되었다. 하지만 이제 응용 프로그램 시작시 예외가 발생합니다.

Caused by: java.lang.IllegalStateException: Singleton 'nodeEntityStateFactory' isn't currently in creation 
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.afterSingletonCreation(DefaultSingletonBeanRegistry.java:312) 
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:239) 
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291) 
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) 
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:292) 
at org.springframework.data.neo4j.cross_store.config.CrossStoreNeo4jConfiguration$$EnhancerByCGLIB$$779c5955.nodeEntityStateFactory(<generated>) 
at org.springframework.data.neo4j.config.Neo4jConfiguration.mappingContext(Neo4jConfiguration.java:199) 
at org.springframework.data.neo4j.cross_store.config.CrossStoreNeo4jConfiguration$$EnhancerByCGLIB$$779c5955.CGLIB$mappingContext$11(<generated>) 
at org.springframework.data.neo4j.cross_store.config.CrossStoreNeo4jConfiguration$$EnhancerByCGLIB$$779c5955$$FastClassByCGLIB$$3134c8a8.invoke(<generated>) 
at net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) 
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:280) 
at org.springframework.data.neo4j.cross_store.config.CrossStoreNeo4jConfiguration$$EnhancerByCGLIB$$779c5955.mappingContext(<generated>) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
at java.lang.reflect.Method.invoke(Unknown Source) 
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:149) 

미리 감사드립니다.

답변

1

이 작동하지해야

<neo4j:config entityManagerFactory="entityManagerFactory"/> 

사용자 정의 구현을 만들 필요합니다.

리포지토리 구성에 전달 된 템플릿은 해당 인프라에서 사용하는 템플릿입니다. 대부분의 경우 다른 것을 구성 할 필요가 없습니다.

+0

java.lang.IllegalStateException를 사용할 때이 예외가 발생합니다. 'nodeEntityStateFactory'가 현재 작성되지 않았습니다. 전체 스택 추적으로 내 질문을 업데이트했습니다. – shazinltc

+0

봄 버전을 사용하고 계십니까? 3.1.0.RELEASE로 업데이트 할 수 있습니까? –

+0

3.1을 사용하고 있습니다. – shazinltc