Gau*_*bbi 2 java session spring neo4j neo4j-ogm
我使用的是 neo4j-ogm 1.1.4 版本。由于我使用我自己使用会话对象创建的 org.springframework.data.neo4j.template.Neo4jTemplate,我想知道是否有一个合同,一旦我的所有工作完成,我就必须将会话标记为关闭。
我遇到了这个链接
http://inner-loop.github.io/java-neo4j-ogm/
但是我使用的库在 Session 类上似乎没有 close 方法。我需要使用其他任何 API 来标记会话已关闭吗?
从技术上讲,没有必要在 Neo4j OGM 中“关闭”会话。它不代表与数据库的连接,而是在您的应用程序和数据库之间维护对话状态,当您在“工作单元”(由您的应用程序定义)中加载和保存对象时,允许 OGM 生成高效的 Cypher。
有两种方法可以破坏这种对话状态。从您的应用程序代码的角度来看,它们都具有相同的效果。
重用
session.clear() 允许您通过删除现有会话状态来重用现有会话对象。
代替
session = sessionFactory.openSession()将用session新对象替换任何当前对象。
这两个操作都将使 OGM 不了解有关域对象相对于图形的同步状态的信息。(在 Hibernate 术语中,它们处于“分离”状态)OGM 当前没有将域对象重新附加到新会话的机制,因此您应该始终将要使用的所有对象重新加载到新会话中。