意外的NotInTransactionException异常

时间:2015-05-08 17:26:01

标签: neo4j

我正在尝试开发一个使用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是事务中先前创建的索引。

有什么想法吗?

谢谢

1 个答案:

答案 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" ],
);