[英]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.