如何维护 org.neo4j.ogm.session.SessionFactory 对象

How to maintain org.neo4j.ogm.session.SessionFactory Object

在应用程序中,我们仅使用 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");
}
}

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

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