深入实践Spring Boot3.1.2 关系实体建模

3.1.2 关系实体建模

电影实体对应的角色关系实体建模的关系类型也同样做了调整而改为“扮演”,如代码清单3-2所示。

代码清单3-2 角色关系实体建模

@JsonIdentityInfo(generator=JSOGGenerator.class)

@RelationshipEntity(type
= "扮演")

public class
Role {

    @GraphId

    Long id;

    String name;

    @StartNode

    Actor actor;

    @EndNode

    Movie movie;

 

    public Role() {

}

……

}

时间: 2024-10-31 08:04:41

深入实践Spring Boot3.1.2 关系实体建模的相关文章

深入实践Spring Boot2.1.2 实体建模

2.1.2 实体建模 首先创建一些普通对象,用来与数据库的表建立映射关系,接着演示如何使用JPA对数据库进行增删查改等存取操作. 假如现在有三个实体:部门.用户和角色,并且它们具有一定的关系,即一个用户只能隶属于一个部门,一个用户可以拥有多个角色.它们的关系模型如图2-1所示.   图2-1 MySQL实体-关系模型示例 Spring Boot的实体建模与使用Spring框架时的定义方法一样,同样比较方便的是使用了注解的方式来实现. 部门实体的建模如代码清单2-2所示,其中注解@Table指定关

深入实践Spring Boot2.4.2 节点和关系实体建模

2.4.2 节点和关系实体建模 虽然Neo4j没有表结构的概念,但它有节点和关系的概念.例如,现在有演员和电影两个实体,它们的关系表现为一个演员在一部电影中扮演一个角色.那么就可以创建演员和电影两个节点实体,和一个角色关系实体.它们的实体-关系模型如图2-5所示.这个实体-关系模型的定义比起关系型数据库的实体-关系模型的定义要简单得多,但是它更加形象和贴切地表现了实体之间的关系.更难能可贵的是,这个实体-关系模型是可以不经过任何转换而直接存入数据库的,也就是说,在Neo4j图数据库中保存的数据与

深入实践Spring Boot3.1 模型设计

3.1 模型设计 数据管理模块实现了MVC中模型的设计,主要负责实体建模和数据库持久化等方面的功能.在本章的实例中,将使用上一章的Neo4j数据库的例子,对电影数据进行管理.回顾一下,有两个节点实体(电影和演员)和一个关系实体(角色).其中,关系实体体现了节点实体之间的关系,即一个演员在一部电影中扮演一个角色.实体建模和持久化与上一章的实现差不多.只不过为了适应本章的内容,电影节点实体和角色关系实体的建模在属性上做了些许调整.另外针对Neo4j数据库的分页查询也做了一些调整和优化.

深入实践Spring Boot2.1.3 实体持久化

2.1.3 实体持久化 通过上面三个实体的定义,实现了使用Java的普通对象(POJO)与数据库表建立映射关系(ORM),接下来使用JPA来实现持久化. 用户实体使用JPA进行持久化的例子如代码清单2-5所示.它是一个接口,并继承于JPA资源库JpaRepository接口,使用注解@Repository将这个接口也定义为一个资源库,使它能被其他程序引用,并为其他程序提供存取数据库的功能. 使用相同的方法,可以定义部门实体和角色实体的资源库接口.接口同样继承于JpaRepository接口,只要

深入实践Spring Boot3.5 运行与发布

3.5 运行与发布 本章实例工程的完整代码可以通过IDEA从GitHub中检出:https://github.com/chenfromsz/spring-boot-ui.git.Spring Boot需要一个启动程序作为应用的入口,在webui模块中,我们设计了一个入口程序,如代码清单3-25所示.使用这个入口程序,就可以调试和发布工程了. 代码清单3-25 Web应用启动主程序 package com.test.webui;   import org.springframework.boot.

深入实践Spring Boot3.1.3 分页查询设计

3.1.3 分页查询设计 对于新型的Neo4j数据库来说,由于它的资源库遵循了JPA的规范标准来设计,在分页查询方面有的地方还不是很完善,所以在分页查询中,设计了一个服务类来处理,如代码清单3-3所示.其中,使用Class<T>传入调用的实体对象,使用Pageable传入页数设定和排序字段设定的参数,使用Filters传入查询的一些节点属性设定的参数. 代码清单3-3 Neo4j分页查询服务类 @Service public class PagesService<T> {    

深入实践Spring Boot3.2.3 修改控制器

3.2.3 修改控制器 若要实现对电影的修改及保存操作,需要先将电影的数据展示在视图界面上,然后接收界面的操作,调用数据管理模块将更改的数据保存至数据库中,如代码清单3-6所示.其中,为了简化设计,将剧照中的图片文件和电影角色名称做了预定义处理.修改数据时,由于从界面传回的电影对象中,丢失了其角色关系的数据(这是OGM的缺点),所以再次查询一次数据库,以取得一个电影的完整数据,然后再执行修改的操作. 代码清单3-6 修改电影控制器 @RequestMapping(value="/edit/{id

深入实践Spring Boot3.3 使用Thymeleaf模板

3.3 使用Thymeleaf模板 完成了模型和控制器的设计之后,接下来的工作就是视图设计了.在视图设计中主要使用Thymeleaf模板来实现.在进行视图设计之前,先了解一下Thymeleaf模板的功能. Thymeleaf是一个优秀的面向Java的XML/XHTML/HTML 5页面模板,并具有丰富的标签语言和函数.使用Spring Boot框架进行界面设计,一般都会选择Thymeleaf模板.

深入实践Spring Boot3.3.1 Thymeleaf配置

3.3.1 Thymeleaf配置 要使用Thymeleaf模板,首先,必须在工程的Maven管理中引入它的依赖:"spring-boot-starter-thymeleaf",如代码清单3-9所示. 代码清单3-9 Thymeleaf依赖配置 <dependency>     <groupId>org.springframework.boot</groupId>     <artifactId>spring-boot-starter-t