Neo4j 为EmbeddedGraphDatabase配置TypeRepresentationStrategy

Neo4j 为EmbeddedGraphDatabase配置TypeRepresentationStrategy,neo4j,spring-data-neo4j,Neo4j,Spring Data Neo4j,我无法配置TypeRepresentationStrategy,原因如下: 未能将“org.neo4j.kernel.EmbeddedGraphDatabase”类型的值转换为所需类型“org.springframework.data.neo4j.core.GraphDatabase” 我使用Spring-Data-Neo4j 3.1.4和Neo4j 2.1.2 这是因为我在spring上下文配置中定义的graphDatabaseService实例是EmbeddedGraphDatabase类型

我无法配置TypeRepresentationStrategy,原因如下:

未能将“org.neo4j.kernel.EmbeddedGraphDatabase”类型的值转换为所需类型“org.springframework.data.neo4j.core.GraphDatabase”

我使用Spring-Data-Neo4j 3.1.4和Neo4j 2.1.2

这是因为我在spring上下文配置中定义的graphDatabaseService实例是EmbeddedGraphDatabase类型,请参阅我的配置:

<util:map id="config">
    <entry key="remote_shell_enabled" value="true"/>
    <entry key="cache-type" value="weak"/>
</util:map>

<bean id="graphDbFactory" class="org.neo4j.graphdb.factory.GraphDatabaseFactory"/>

<bean id="graphDbBuilder" factory-bean="graphDbFactory" factory-method="newEmbeddedDatabaseBuilder">
    <constructor-arg value="target/neo4j-db-plain"/>
</bean>

<bean id="graphDbBuilderFinal" factory-bean="graphDbBuilder" factory-method="setConfig">
    <constructor-arg ref="config"/>
</bean>

<bean id="graphDatabaseService" factory-bean="graphDbBuilderFinal" factory-method="newGraphDatabase"
      destroy-method="shutdown"/>

<bean id="serverWrapper" class="org.neo4j.server.WrappingNeoServerBootstrapper" init-method="start"
      destroy-method="stop">
    <constructor-arg ref="graphDatabaseService"/>
</bean>

<neo4j:config base-package="com.hobbydeed.graph.model" graphDatabaseService="graphDatabaseService" />

<bean id="typeRepresentationStrategyFactory" class="org.springframework.data.neo4j.support.typerepresentation.TypeRepresentationStrategyFactory">
    <constructor-arg index="0" ref="graphDatabaseService"/>
    <constructor-arg type="org.springframework.data.neo4j.support.typerepresentation.TypeRepresentationStrategyFactory.Strategy">
        <value>Indexed</value>
    </constructor-arg>
</bean>
问题是,当org.neo4j.kernel.EmbeddedGraphDatabase实现org.neo4j.graphdb.GraphDatabaseService时,如何将TypeRepresentation配置为索引,但是TypeRepresentationFactory想要org.springframework.data.neo4j.core.GraphDatabase?

有一个NodeTypeRepresentationStrategybean,您可以用选择的策略覆盖它

对于您所使用的策略工厂,您可以只使用graphDatabase bean引用

或者使用DelegatingGraphDatabasegraphDatabaseService作为默认graphDatabase的bean