我正在使用:
- spring-data-neo4j 4.2.0.BUILD-SNAPSHOT
- neo4j-ogm 2.1.1
- neo4j 3.0.8
和我遇到了neo4j-ogm 设置的X-Write HTTP标头的问题。
在写入事务时,它已正确设置。
但我对只读交易存在问题。我在只读事务中多次调用neo4j:
- POST ... / db / data / transaction {“statements”:[{“statement”:“request1”} ...]}(X-WRITE: true )
- POST ... / db / data / transaction / 1 {“statements”:[{“statement”:“request2”} ...]}(X-WRITE: false )< / LI>
- POST ... / db / data / transaction / 1 {“statements”:[{“statement”:“request3”} ...]}(X-WRITE: false )< / LI>
- ...
问题是第一个请求包含带有“true”值的X_WRITE标头。下一个请求正确地具有带有'false'值的标头。
因此第一个请求总是发送到我的主节点,我无法在从节点上发送下一个请求,因为事务中的所有请求都必须发送到同一个neo4j节点。
看看neo4j-ogm源代码,似乎可能是由于HttpDriver.readOnly()方法在getCurrentTransaction()为null时返回false。