首页 > 解决方案 > 如何维护 org.neo4j.ogm.session.SessionFactory 对象

问题描述

在应用程序中,我们仅使用 OGM,没有 SpringBoot 或相关 api,在我们的控制器中,我们使用以下代码

public TopologyExtController( @Context org.neo4j.graphdb.GraphDatabaseService graphDb ) {

if( this.sessionFactory == null )
{
this.sessionFactory = new org.neo4j.ogm.session.SessionFactory(new org.neo4j.ogm.drivers.embedded.driver.EmbeddedDriver(graphDb), "com.demo.entity");
}
}

但是每次控制器都会被请求调用,这个代码也会调用。有人可以告诉我每次有任何请求时都调用上面的代码是个好主意吗?或者我们应该做SessionFactory对象Singleton

标签: neo4jneo4j-ogm

解决方案


抱歉,我不能告诉你这是个好主意;)说真的,SessionFactory应该只创建一次。初始化它时,它会扫描你所有的包以查找NodeEntitys 和RelationshipEntitys 并且每次都创建(嵌入式)驱动程序。让它成为一种单例以避免这种额外的性能成本。


推荐阅读