我按照本教程设置了Spring Data Neo4J:http://spring.io/guides/gs/accessing-data-neo4j/并稍微更改了一下,以便在Neo4J服务器上使用它,运行良好。
然后我尝试找到一个示例,如何在CDI环境中使用存储库,如以下示例中所述:http://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpd.misc.cdi-integration
仅仅,我找不到任何我必须提供的示例来使用Neo4J进行运行。
所以我的问题是:有没有人尝试使用Spring Data和CDI设置Neo4j并且可以提供一个示例,我如何为CDI设置Spring配置以及如何使@Inject可以访问存储库?请考虑一下我在Spring Data和Neo4J主题中的新功能;) 提前谢谢!
Joern
答案 0 :(得分:0)
至少我找到了似乎有用的东西。我扩展了Neo4JConfiguration以设置Neo4J服务器连接。在这个类中,我还生成了所需的存储库。存储库本身必须使用@NoRepositoryBean
进行注释public class MyNeo4JConfiguration extends Neo4jConfiguration {
GraphDatabaseService graphDatabaseService() {
return new SpringRestGraphDatabase("http://localhost:7474/db/data");
}
public GraphDatabase graphDatabase() {
if (graphDatabaseService() instanceof GraphDatabase)
return (GraphDatabase) graphDatabaseService();
return new DelegatingGraphDatabase(graphDatabaseService());
}
@Produces
PersonRepository getPersonRepository() {
GraphRepositoryFactory factory;
try {
factory = new GraphRepositoryFactory(new Neo4jTemplate(
this.graphDatabase()), this.neo4jMappingContext());
PersonRepository personRepository = factory
.getRepository(PersonRepository.class);
return personRepository;
} catch (Exception e) {
return null;
}
}
存储库:
@NoRepositoryBean
public interface PersonRepository extends GraphRepository<Person> {
Person findByName(String name);
Iterable<Person> findByTeammatesName(String name);
}
现在可以使用@Inject注入PersonRepository。
感谢this张贴!!!