Spring bootプロジェクト統合Neo 4 j
24982 ワード
まずSpringbootプロジェクトを作成Eclipseを使用してMavenプロジェクトを作成しpomを変更します.xmlファイルは次のとおりです.
ステップ2では、プロファイルアプリケーションを変更します.properties
第3歩、modelファイル—ノードUserと関係UserRelation、この2つのファイルはneo 4 jの中のノードと関係の属性と1つ1つ対応して、ここは私の例で、具体的にはそれぞれのneo 4 jの内容と対して、labelはneo 4 jライブラリの名前と一致しなければなりません
ステップ4、repositoryファイル----UserRepositoryとUserRelationRepository,@QueryでCypherクエリを記述する
ステップ5サービスファイルを変更する
ステップ6では、neo 4 jファイルにconfig------Neo 4 jConfigを注入し、basePackgesのパスに注意します.
転載先:https://www.cnblogs.com/jpfss/p/11578248.html
xml version="1.0" encoding="UTF-8"?>
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
com.example
demo
0.0.1-SNAPSHOT
jar
demo
Demo project for Spring Boot
org.springframework.boot
spring-boot-starter-parent
1.5.9.RELEASE
UTF-8
UTF-8
1.8
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-starter-data-neo4j
org.springframework.boot
spring-boot-maven-plugin
ステップ2では、プロファイルアプリケーションを変更します.properties
server.port=8080
spring.data.neo4j.uri=http://{neo4jweb }:7474
spring.data.neo4j.username=neo4j
spring.data.neo4j.password=neo4j
第3歩、modelファイル—ノードUserと関係UserRelation、この2つのファイルはneo 4 jの中のノードと関係の属性と1つ1つ対応して、ここは私の例で、具体的にはそれぞれのneo 4 jの内容と対して、labelはneo 4 jライブラリの名前と一致しなければなりません
@NodeEntity(label = "User")
public class UserNode {
@GraphId
private Long nodeId;
@Property(name = "userId")
private String userId;
@Property(name = "name")
private String name;
@Property(name = "age")
private int age;
public Long getNodeId() {
return nodeId;
}
public void setNodeId(Long nodeId) {
this.nodeId = nodeId;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
@RelationshipEntity(type = "UserRelation")
public class UserRelation {
@GraphId
private Long id;
@StartNode
private UserNode startNode;
@EndNode
private UserNode endNode;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public UserNode getStartNode() {
return startNode;
}
public void setStartNode(UserNode startNode) {
this.startNode = startNode;
}
public UserNode getEndNode() {
return endNode;
}
public void setEndNode(UserNode endNode) {
this.endNode = endNode;
}
}
ステップ4、repositoryファイル----UserRepositoryとUserRelationRepository,@QueryでCypherクエリを記述する
@Component
public interface UserRepository extends GraphRepository<UserNode> {
[@Query](/user/Query)("MATCH (n:User) RETURN n ")
List<UserNode> getUserNodeList();
[@Query](/user/Query)("create (n:User{age:{age},name:{name}}) RETURN n ")
List<UserNode> addUserNodeList(@Param("name") String name, @Param("age")int age);
}
@Component
public interface UserRelationRepository extends GraphRepository<UserRelation> {
[@Query](/user/Query)("match p=(n:User)(n1:User) where n.userId={firstUserId} and n1.userId={secondUserId} return p")
List<UserRelation> findUserRelationByEachId(@Param("firstUserId") String firstUserId, @Param("secondUserId") String secondUserId);
[@Query](/user/Query)("match (fu:User),(su:User) where fu.userId={firstUserId} and su.userId={secondUserId} create p=(fu)-[r:UserRelation]->(su) return p")
List<UserRelation> addUserRelation(@Param("firstUserId") String firstUserId, @Param("secondUserId") String secondUserId);
}
ステップ5サービスファイルを変更する
@Service
public class Neo4jService {
@Autowired
private UserRepository userRepository;
@Autowired
private UserRelationRepository userRelationRepository;
/**
* Always use constructor based dependency injection in your beans.
* Always use assertions for mandatory dependencies.
*/
public int addUser(UserNode userNode){
userRepository.addUserNodeList(userNode.getName(),userNode.getAge());
return 1;
}
}
ステップ6では、neo 4 jファイルにconfig------Neo 4 jConfigを注入し、basePackgesのパスに注意します.
@Configuration
@EnableNeo4jRepositories(basePackages = "com.example.demo.repository")
public class Neo4jConfig {
}
原文アドレス:http://neo4j.com.cn/topic/5a935b4a2aa9336e06418eca 転載先:https://www.cnblogs.com/jpfss/p/11578248.html