1

私はSDNを初めて使用し、休止状態でクロスストアの永続化を実行しようとしています。ウェブサイトで提供されているチュートリアルには同じ例があります。私はgithubのものもチェックしました。2つの質問があります

  1. ドキュメントまたは例に記載されているように、xml構成を行うことができません。<neo4j:config/>をサポートしていませんentityManagerFactory。私の仮定は、のセッターを持たないデフォルトのNeo4jConfigurationentityManagerFactoryを作成することです。私が見つけた回避策は、CrossStoreNeo4jConfigurationBeanを定義することです。

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

    内部でこれを行う方法<neo4j:config/>

  2. neo4j-template-refを使用してリポジトリを定義するときに、を使用してNeo4jTemplateをリポジトリに参照するとどうなりますneo4j:repositoriesか?目的は何ですか?

UDPATE

CrossStoreNeo4jConfigurationで作成できなかった理由は<neo4j:config/> was、依存関係spring-data-neo4j-cross-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)

前もって感謝します。

4

1 に答える 1

1

これは機能するはずです:

<neo4j:config entityManagerFactory="entityManagerFactory"/>

カスタム実装を作成する必要はありません。

リポジトリ構成に渡されるテンプレートは、そのインフラストラクチャで使用されるテンプレートです。ほとんどの場合、別の設定をする必要はありません。

于 2012-09-05T20:00:02.767 に答える