首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >neo4j :无法在已执行架构更新的事务中执行数据更新

neo4j :无法在已执行架构更新的事务中执行数据更新
EN

Stack Overflow用户
提问于 2014-02-28 16:11:33
回答 2查看 1.1K关注 0票数 2

您好,我在使用Neo4jTemplate保存NodeEntity对象时遇到以下错误

无法在已执行架构更新的事务中执行数据更新

Spring-data :-

代码语言:javascript
复制
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-neo4j</artifactId>
        <version>3.1.0.BUILD-SNAPSHOT</version>

Neo4j版本: 2.X

服务:

代码语言:javascript
复制
@Override
@Transactional
public void addRepository(Repository repository) {
    template.save(repository);
}

原因: org.neo4j.kernel.api.exceptions.InvalidTransactionTypeKernelException:无法在已执行架构更新的事务中执行数据更新。在org.neo4j.kernel.impl.api.KernelTransactionImplementation$TransactionType$2.upgradeToDataTransaction(KernelTransactionImplementation.java:452) at org.neo4j.kernel.impl.api.KernelTransactionImplementation.upgradeToDataTransaction(KernelTransactionImplementation.java:212) at org.neo4j.kernel.impl.api.KernelStatement.dataWriteOperations(KernelStatement.java:84) at org.neo4j.kernel.InternalAbstractGraphDatabase.createNode(InternalAbstractGraphDatabase.java:1033) ...还有49个

EN

回答 2

Stack Overflow用户

发布于 2014-03-02 20:34:26

SDN3.0.0现在需要在您的Spring配置中配置base-package

实际上,现在需要这样做,因为Neo4j 2.0.X不允许在与数据更新相同的事务中插入索引( first save操作涉及的模式更改)(在本例中是实体的save)。

因此,如果您使用Spring的XML配置,它将如下所示:

代码语言:javascript
复制
<neo4j:config graphDatabaseService="graphDatabaseService" base-package="com.myApp.myDomainPackage" />

其中com.myApp.myDomainPackage包含所有节点实体。而不是简单的:

代码语言:javascript
复制
<neo4j:config graphDatabaseService="graphDatabaseService"/>
票数 1
EN

Stack Overflow用户

发布于 2014-02-28 17:18:05

数据更新和架构更改需要在不同的事务中进行。如果允许它们出现在同一交易中,各种奇怪的事情就有可能发生。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22089640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档