繁体   English   中英

使用嵌入式驱动程序时,将过程部署​​到Neo4J

[英]Deploy a Procedure to Neo4J when using the embedded driver

我有一些逻辑,需要直接访问neo4j的节点,但是为简单起见,其余应用程序使用Spring Data Neo4j(SDN)。 我以为可以使用@Procedure使用某个过程,但是在使用neo4j嵌入式驱动程序和SDN4时我不确定如何使用该过程。 我的配置非常准,如下所示:

@Configuration
@EnableNeo4jRepositories(basePackages = "recommender.repository")
@ComponentScan(basePackages = "recommender")
@EnableTransactionManagement
public class MyNeo4jConfiguration extends Neo4jConfiguration {

@Bean
public SessionFactory getSessionFactory() {

    System.out.println("******* GET SESSION FACTORY!!!!");
    // with domain entity base package(s)
    return new SessionFactory("recommender.model");
}

// needed for session in view in web-applications
@Bean
@Scope(value = "session", proxyMode = ScopedProxyMode.TARGET_CLASS)
public Session getSession() throws Exception {
    return super.getSession();
}

在此处带有属性文件:

#EmbeddedSetup
driver=org.neo4j.ogm.drivers.embedded.driver.EmbeddedDriver
#URI=file:/neo4j/data/graph.db

通过该设置,我可以在其中使用@Procedure和@Context放置类(用于数据库访问),在战争部署期间SDN的实现可以访问它。

SDN本身没有为您管理程序的功能。 但是,有一种方法可以访问基础的GraphDatabaseService:

 EmbeddedDriver embeddedDriver = (EmbeddedDriver) Components.driver();
 GraphDatabaseService databaseService = embeddedDriver.getGraphDatabaseService();

使用此,您可以注册您的程序

((GraphDatabaseAPI) getDatabase()).getDependencyResolver().resolveDependency(Procedures.class).register(YourProcedure.class);

但是,不是很确定这是否适用于应用程序类路径中的过程类,但是值得尝试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM