私たちはmaven-webプロジェクトに取り組んでいます。このプロジェクトでは、MySQLとNeo4jの2つのデータベースを使用しました。プロジェクトはMySQLで正常に実行されています(Neo4jなし)。Neo4j構成ファイル(neo4j-config.xml)プロジェクトビルドをエラーなしで追加した後、Mysqlに操作を挿入すると正常に戻りますが、実際には何もテーブルに挿入されません。この問題に関するいくつかの調査で、「クロスストアオペレーション」に関する情報が見つかりました。
クロスストアを使用したXML構成
<context:annotation-config/>
<bean class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
id="entityManagerFactory">
<property name="dataSource" ref="dataSource"/>
<property name="persistenceXmlLocation" value="classpath:META-INF/persistence.xml"/>
</bean>
<datagraph:config graphDatabaseService="graphDatabaseService"
entityManagerFactory="entityManagerFactory"/>
<bean id="graphDatabaseService"
class="org.springframework.data.neo4j.rest.SpringRestGraphDatabase">
<constructor-arg index="0" value="http://localhost:7474/db/data" />
</bean>
私たちのプロジェクトdb-context.xml
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<bean id="jpaVendorAdapter"
class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="showSql" value="true" />
<property name="database" value="MYSQL" />
</bean>
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="persistenceUnitName" value="persistenceUnit" />
<property name="jpaVendorAdapter" ref="jpaVendorAdapter" />
</bean>
私たちのプロジェクトneo4j-context.xml
<neo4j:config graphDatabaseService="graphDatabaseService" />
<bean id="graphDatabaseService"
class="org.springframework.data.neo4j.rest.SpringRestGraphDatabase">
<constructor-arg index="0" value="http://localhost:7474/db/data" />
</bean>
entityManagerFactory = "entityManagerFactory"をneo4j-config.xmlファイルに追加した後、mavenプロジェクトの実行中に次のようなエラーが発生しました。
原因:org.springframework.beans.factory.BeanCreationException:「org.springframework.data.neo4j.config.Neo4jConfiguration#0」という名前のBeanの作成中にエラーが発生しました:プロパティ値の設定中にエラーが発生しました。ネストされた例外はorg.springframework.beans.NotWritablePropertyExceptionです:Beanクラスの無効なプロパティ'entityManagerFactory' [org.springfram ework.data.neo4j.config.Neo4jConfiguration $$ EnhancerByCGLIB $$ 5a2edf0]:Beanプロパティ'entityManagerFactory'は書き込み可能または無効なセッターメソッドがあります。セッターのパラメータータイプはゲッターのリターンタイプと一致していますか?
neo4jタグの代わりにdatagraphタグを使用すると、次のようなエラーが発生しました
問題のあるリソース:ServletContextリソース[/WEB-INF/spring-servlet.xml]; ネストされた例外はorg.springframework.beans.factory.xml.XmlBeanDefinitionStoreExceptionです:ServletContextリソース[/WEB-INF/neo4j-config.xml]からのXMLドキュメントのライン32は有効です。ネストされた例外はorg.xml.sax.SAXParseExceptionです。systemId: http ://www.springframework.org/schema/data/graph/datagraph-1.0.xsd ; lineNumber:32; columnNumber:51; src-resolve:名前'repository:repository'を(n)'タイプ定義'コンポーネントに解決できません。
私たちの問題は、挿入操作行はデバッグモードで成功を返しますが、neo4j構成ファイルをプロジェクトに追加した後、テーブルに新しいレコードを追加しないことです。neo4j-config.xmlファイルを追加するだけでこの状況が発生する理由がわかりませんでした。2番目の混乱は、「entityManagerFactory」を追加してもこの問題が解決されない理由です。
spring-dataの例(myrestaurants-social)を除いて、maven-webプロジェクトでMySQLを使用するNeo4jの例は見つかりませんでした。
貴重なご回答をよろしくお願いいたします。