- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将 SDN (4.2.0.M1
) 和 neo4j-ogm (2.0.5
) 版本升级到最新快照 4.2 .0.BUILD-SNAPSHOT
和 2.1.0-SNAPSHOT
。
按照迁移指南和其他 SO 问题的一些建议,我用 @Transactional
包装了与 neo4j session 交互的所有方法。它在大多数情况下都能正常工作,但仍然存在一些我无法理解的异常(exception)情况(该线程的事务不是当前的
)。
举个例子:
@Service
public class ContactServiceImpl implements ContactService {
@Inject
private Session session;
//...
@Override
@Transactional
public void addContact(String userId, String contactId) {
Contact contact = new Contact();
// Fill contact data
session.save(contact);
}
@Override
public void addContacts(String userId, Set<User> newContacts) {
for (User contact : CollectionUtils.emptyIfNull(newContacts)) {
addContact(userId, contact.getId());
}
}
}
这里我只用@Transaction
注释了addContact
方法,因为它是唯一一个直接与SDN交互的方法,至少这是我的想法:)
但是,如果我调用 addContacts
方法(该方法只是迭代列表并调用带注释的 addContact
方法),则会失败并出现前面提到的异常。如果我也注释这个方法,它只是工作得很好,但我不明白为什么。也许我缺少一些有关 spring @Transactional
注释行为的基础知识,如果这是一个无脑的问题,很抱歉。
任何人都可以澄清为什么我需要注释这两种方法吗?提前致谢
最佳答案
@Transactional
比大多数人想象的要复杂一些。看起来应该有效的东西实际上不起作用,有时反之亦然。
在您的情况下,您遇到了一个不友好的 Spring 问题:不了解 @Transactional
AOP 代理在从同一个类中调用事务方法时如何工作。
This snippet from the official documenation是大致了解 Spring 事务代理基础知识的一个很好的起点。
快速搜索 StackOverflow 后,我找到了 this answer这很好地解释了您所看到的现象。
注意:从版本 4.2 开始,SDN 现在完全实现了 Spring Transaction Platform。
关于java - SDN 迁移到 4.2 : How does @Transactional works?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40851415/
在 Spring Boot 2.3.4 之前,我一直在使用 @QueryResult 注释将一些自定义 Cypher 查询响应映射到 POJO。我现在正在测试 Spring Boot 2.4 firs
目前正在使用 Neo4j(可能是 2.2)外部服务器作为主数据库启动一个新的 Java 项目,我们决定使用 SDN。这将是一个为期一年的项目,其中包含多个中间版本。 我们想知道是否应该使用当前版本 (
我正在迁移我的应用程序以使用 SDN 4.1.0.RC1,但在尝试启动应用程序后遇到了一些问题。我已经进行了必要的配置更改,以便正确地将 HTTPDriver 用于我的远程服务器 (localhost
我正在尝试使用 POX Controller 来控制流的路径。我知道 Open vSwitch 会选择具有最高优先级的转发规则。但是如果我为具有相同优先级的现有流插入新的转发规则会发生什么。 Open
我想在 mininet 中制作测试平台来测试我自己的算法。我想设置链路数据流量速率,控制流量速率和链路处理速率。但我做不到。如果有人知道如何设置所有这些。请帮助我。 谢谢,阿婆 最佳答案 TL;DR
我想在 mininet 中制作测试平台来测试我自己的算法。我想设置链路数据流量速率,控制流量速率和链路处理速率。但我做不到。如果有人知道如何设置所有这些。请帮助我。 谢谢,阿婆 最佳答案 TL;DR
我正在研究 Open DayLight 的文档, 似乎无法理解 软件定义网络甚至是。我可以在 SDN 上找到的所有媒体炒作、博客和文章都充斥着对我作为工程师没有任何意义的流行语。所以我问:什么(确切地
我有以下 SDN 4 实体: 决策、特征和值: @NodeEntity public class Value { private final static String SET_FOR = "
我们正在使用 spring-data-neo4j 版本 2.2.2.Release 和 Neo4j 1.9 使用 GraphRepository 保存和更新节点(属性)可以正常工作 我们最简单的示例如
最近二狗子在网上冲浪的时候,不小心将 CDN 搜索成了 SDN,结果跳出来了一大堆相关的知识点。 好学的二狗子当然不会随随便便糊弄过去,于是认认真真学习了好久,终于了解了 SDN 是什么。
如何使用 Ryu 发送流条目来删除包?我从教程中学习了如何将包发送出流条目: 我定义 Action :actions = [ofp_parser.OFPActionOutput(ofp.OFPP_FL
我正在尝试让SDN 4与Gradle和Groovy一起使用,并检查了此处的其他帖子,第二天晚上我开始使用它,但我想在过去几天中发生了一些变化。 当我尝试运行测试时,由于ClassNotFoundExc
我有一个以下 Neo4j SDN 实体: @NodeEntity public class Comment { private final static String COMMENTED_ON
当运行 mininet 拓扑时,我们可以使用 ovs 或 ovsk 作为 mininet 的 mn 命令中的 --switch 参数,例如: mn --custom topo.py --topo t
在 OpenFlow 协议(protocol)中,我们有一个流表(或多个流表)。交换机中的每个流表都包含一组流表项。每个流条目包含报头字段、计数器和一组要应用的指令或操作。指令就像“将这个 Actio
我是 Neo4J 的新手,我正在尝试为基于时空的高可用性查询构建概念证明。 我有一个设置,其中包含 2 个独立的 Neo4J Enterprise 服务器和一个使用嵌入式 HA Neo4J 服务器运行
在软件定义的网络中,有些东西我仍然没有得到:在传统网络中,我们使用 CLI 或 NETCONF 或者 SNMP 来配置设备,在 SDN 中,我们使用 Openflow 来这样做,但是检索信息呢? 之前
在软件定义的网络中,有些东西我仍然没有得到:在传统网络中,我们使用 CLI 或 NETCONF 或者 SNMP 来配置设备,在 SDN 中,我们使用 Openflow 来这样做,但是检索信息呢? 之前
这是我的配置 @EnableTransactionManagement @EnableScheduling @EnableAutoConfiguration @ComponentScan(basePa
在我的 Neo4j/SDN 4 应用程序中,我的所有 Cypher 查询都基于内部 Neo4j ID。 这是一个问题,因为我不能在我的 Web 应用程序 URL 中依赖这些 ID。 Neo4j 可以重
我是一名优秀的程序员,十分优秀!