关于 spring data neo4j (SDN) 操作数据库后 数据库无变化
一、问题
有些同学在使用 spring data neo4j (SDN) 操作数据库后 数据库无变化 。程序正常运行无报错,且数据可正常操作。但程序运行完成后到Neo4j里查询发现数据库无任何变化
二、原因
spring data neo4j (SDN) 操作数据库,必须使用Spring 的事务注解,如果操作数据的方法不标明为事务,则Spring 自动回滚所有操作
三、解决方案
在操作数据库的方法上(一般在Spring项目中的service层)加上注解 @Transactional(propagation = Propagation.NOT_SUPPORTED),标明为事务propagation = Propagation.NOT_SUPPORTED标明为“非传播”事务,以立即提交事务 代码如下:
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Propagation; @Transactional(propagation = Propagation.NOT_SUPPORTED) public void testCRUDPerson() { //调用 相应 的Repository中的方法操作Neo4j数据库中的数据 }