我正在尝试开发一个使用Neo4J 2.2.1嵌入式的J2EE应用程序(在WildFly 8.2中)。 由于我正在从Neo4J 1.9迁移它,该应用程序使用索引遗留系统。
我在某些操作期间遇到问题,这些操作不应返回与事务相关的异常。
例如:
for ( Iterator iterator = node.getPropertyKeys().iterator(); iterator.hasNext(); ) {
key = (String)(iterator.next());
....
}
stacktrace:
File (71):ThreadToStatementContextBridge.java - org.neo4j.kernel.impl.core.ThreadToStatementContextBridge.assertInUnterminatedTransaction
File (104):ThreadToStatementContextBridge.java - org.neo4j.kernel.impl.core.ThreadToStatementContextBridge.getTopLevelTransactionBoundToThisThread
File (111):ThreadToStatementContextBridge.java - org.neo4j.kernel.impl.core.ThreadToStatementContextBridge.getKernelTransactionBoundToThisThread
File (64):ThreadToStatementContextBridge.java - org.neo4j.kernel.impl.core.ThreadToStatementContextBridge.instance
File (785):InternalAbstractGraphDatabase.java - org.neo4j.kernel.InternalAbstractGraphDatabase$8.statement
File (358):NodeProxy.java - org.neo4j.kernel.impl.core.NodeProxy.getPropertyKeys
请注意,如果我调用以下内容,则会出现相同的错误:
Index<Node> indexNode = ...
...
indexNode.get("users", "test@test.com").getSingle()
其中indexNode是事务中先前创建的索引。
有什么想法吗?
谢谢
答案 0 :(得分:1)
来自Neo4j 1.9的最具影响力的突破性变化 - &gt; 2.0是强制读取事务。无论何时进行读取操作,都需要围绕该操作进行交易。
%HoA = (
A1 => [ "1", "2", "3", "4" ],
A2 => [ "5", "6", "7", "8" ],
A3 => [ "1", "9", "10", "11" ],
A4 => [ "12", "13", "14", "10" ],
);