繁体   English   中英

有没有人能与Grails一起直接访问数据spring-data-neo4j?

[英]Has anyone got direct data access spring-data-neo4j working with Grails?

有没有人设法让弹簧数据Neo4j的直接数据访问模式Grails的工作,如记录在这里

我不能让Grails尊重下面的@Autowired标记。 下面的代码是spring在其文档中给出的示例的非常简单的版本:

package hello;

import org.neo4j.graphdb.GraphDatabaseService;
import org.neo4j.graphdb.Transaction;
import org.neo4j.graphdb.factory.GraphDatabaseFactory;
import org.neo4j.kernel.impl.util.FileUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.neo4j.config.EnableNeo4jRepositories;
import org.springframework.data.neo4j.config.Neo4jConfiguration;
import org.springframework.data.neo4j.core.GraphDatabase;

import java.io.File;

@Configuration
@EnableNeo4jRepositories(basePackages = "hello")
public class Application extends Neo4jConfiguration {

public Application() {
    setBasePackage("hello");
}

@Bean
GraphDatabaseService graphDatabaseService() {
    return new GraphDatabaseFactory().newEmbeddedDatabase("accessingdataneo4j.db");
}

@Autowired
PersonRepository personRepository;

@Autowired
GraphDatabase graphDatabase;

public String test() throws Exception {
    Person greg = new Person("Greg");
    String rc = "";

    Transaction tx = graphDatabaseService().beginTx();
    try {

        personRepository.save(greg);
        rc = personRepository.findByName("Greg").toString();

        tx.success();
    } finally {
        tx.close();
    }

    return rc;
}

}

我在执行grails run-app时收到以下错误消息(这是一连串的嵌套异常,但这是主要原因):

创建在类路径资源[hello / TestGraph.class]中定义的名称为“ graphDatabase”的bean时出错:实例化bean失败; 嵌套的异常是org.springframework.beans.factory.BeanDefinitionStoreException:工厂方法[public org.springframework.data.neo4j.core.GraphDatabase org.springframework.data.neo4j.config.Neo4jConfiguration.graphDatabase()]抛出异常; 嵌套异常为java.lang.IllegalArgumentException:要求失败:不能使用空图数据库

我尝试将以下内容放入Config.groovy:

grails.spring.bean.packages = ['org.neo4j.kernel', 'hello']

这应该意味着我不需要在spring / resources.groovy中放置任何内容,不是吗?

无论如何,无论如何我似乎都行不通:

beans = {
    graphDatabase(GraphDatabase) {}
}

在获得与以前相同的异常之前,我得到了一个不同的异常开始:

spring.RuntimeSpringConfigUtilities [RuntimeConfiguration]无法从resources.groovy加载groovy.lang.MissingPropertyException:无此类属性:类的GraphDatabase:在grails.spring.BeanBuilder.invokeBeanDefiningClosure处resources $ _run_closure1.doCall(resources.groovy:4)处的资源(BeanBuilder.java:754)在grails.spring.BeanBuilder.beans(BeanBuilder.java:584)在grails.plugin.hibernate4.HibernatePluginSupport.checkExternalBeans(HibernatePluginSupport.groovy:464)在grails.plugin.hibernate4.HibernatePluginSupport $ __ clinit__closure1在grails.spring.BeanBuilder.beans(BeanBuilder.java:584)的grails.spring.BeanBuilder.invokeBeanDefiningClosure(BeanBuilder.java:754)的doCall(HibernatePluginSupport.groovy:122)在grails.spring.BeanBuilder.invokeMethod(BeanBuilder.java) :527),位于java.util.concurrent.FutureTask.run(FutureTask.java:266),位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142),位于java.util.concurrent.ThreadPoolExecutor $ Worker.run(线程P oolExecutor.java:617),位于java.lang.Thread.run(Thread.java:745)

我没有 我以为grails上次检查时有某种插件,但我可能错了。 无论哪种方式,此其他人都通过它的外观来完成它。 在grails中使用spring-data-neo4j获取UnsatisfiedDependencyException

由于这里提供了一些出色的帮助,我得到了一个有效的版本: Java类中的Grails @Autowire无法正常工作

主要问题似乎是Grails似乎不尊重SDN批注,因此有必要将配置代码放入spring / resources.xml。

所有的代码是在Github 这里

暂无
暂无

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

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