关于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测试