【Neo4j】Spring Data Neo4j APi阅读随笔

顾昊穹
2023-12-01

引言

关于Spring boot整合Neo4j的官方api翻译&学习随笔

spring boot整合neo4j官方API

一、准备工作

1.注入依赖

  <dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-jpa</artifactId>
  </dependency>

2.配置yml文件
这里是本地yml配置

spring:
  data:
    neo4j:
      #配置uri
      uri: bolt://localhost:7687
      #账号
      username: neo4j
      #密码
      password: 123456

注解及其解释

1.实体对象映射方面

@Id
@GeneratedValue
@Property(“tagline”)
@Relationship(type = “ACTED_IN”, direction = Direction.INCOMING)
@Relationship(type = “DIRECTED”, direction = Direction.INCOMING)

@Node("class-name"):用于实体映射,里面存放的是映射后的类名
@Id:用与实体类的属性,表示id
@GeneratedValue:用与实体类的属性,表示自动生产id
@Property:用与实体类的属性,表示映射后为属性
@CompositeProperty:在字段级别应用于应作为复合读回的 Map 类型的属性。请参阅复合属性。
@Relationship:应用于字段级别以指定关系的详细信息。
@DynamicLabels:应用于字段级别以指定动态标签的来源。
@RelationshipProperties:应用于类级别以指示此类作为关系属性的目标。
@TargetNode: 应用在注解为 的类的某个字段上,@RelationshipProperties从另一端的角度来标记该关系的目标。
实体实例1

//MovieEntity 实体类映射后的实体类名是Movie
@Node("Movie") 
public class MovieEntity {
	//表示id
	@Id 
	private final String title;
	//表示映射后的属性名为tagline
	@Property("tagline") 
	private final String description;

	@Relationship(type = "ACTED_IN", direction = Direction.INCOMING) 
	private List<Roles> actorsAndRoles;

	@Relationship(type = "DIRECTED", direction = Direction.INCOMING)
	private List<PersonEntity> directors = new ArrayList<>();

	public MovieEntity(String title, String description) { 
		this.title = title;
		this.description = description;
	}

	// Getters omitted for brevity
}

实体实例2

@Node("Movie")
public class MovieEntity {

	@Id 
	//此注解跟在@Id后,表示自动生成id
	@GeneratedValue
	private Long id;

	private final String title;

	@Property("tagline")
	private final String description;

	public MovieEntity(String title, String description) { 
		this.id = null;
		this.title = title;
		this.description = description;
	}

	public MovieEntity withId(Long id) { 
		if (this.id.equals(id)) {
			return this;
		} else {
			MovieEntity newObject = new MovieEntity(this.title, this.description);
			newObject.id = id;
			return newObject;
		}
	}
}

二、核心接口:CrudRepository接口

三、查询实现
四、多模块查询
五、自定义查询
六、分页查询
七、控制查询
八、流式查询
九、异步查询
十、过滤查询
十一、实例查询

测试

一、neo4jv3测试
二、neo4jv4测试

 类似资料: