gpt4 book ai didi

java - 在 Neo4j-ogm 中是否有关闭 session 的 API?

转载 作者:行者123 更新时间:2023-11-30 06:54:43 24 4
gpt4 key购买 nike

我使用的是 neo4j-ogm 1.1.4 版本。由于我使用了我自己使用 session 对象创建的 org.springframework.data.neo4j.template.Neo4jTemplate,我想知道是否有一个契约(Contract),一旦我完成所有工作,我就必须将 session 标记为关闭。

我看到了这个链接

http://inner-loop.github.io/java-neo4j-ogm/

但是我正在使用的库在 Session 类上似乎没有 close 方法。我需要使用任何其他 API 来将 session 标记为关闭吗?

最佳答案

从技术上讲,没有必要在 Neo4j OGM 中“关闭” session 。它不代表与数据库的连接,而是维护您的应用程序和数据库之间的对话状态,当您在“工作单元”(由您的应用程序定义)中加载和保存对象时,允许 OGM 生成高效的 Cypher。

有两种方法可以破坏这种对话状态。从您的应用程序代码的角度来看,它们都具有相同的效果。

再利用

session.clear() 允许您通过删除现有 session 状态来重用现有 session 对象。

替换

session = sessionFactory.openSession() 将用一个新对象替换任何当前的 session 对象。

这两个操作都会让 OGM 没有关于域对象相对于图形的同步状态的信息。 (在 Hibernate 术语中,它们处于“分离”状态)OGM 目前没有将域对象重新附加到新 session 的机制,因此您应该始终重新加载您想要的所有对象在新 session 中使用。

关于java - 在 Neo4j-ogm 中是否有关闭 session 的 API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36089756/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com