JPA多表查询
1.多表查询在Spring Data JPA 中有两种实现方式,第一种是创建一个结果集的接口来接受多表联查查询后的结果,第二种是利用JPA的关联映射来实现.
多表连接查询
关联映射
2.在软件开发中,类与类之间最普遍的关系就是关联关系,而且关联是有方向的.以角色(Role)和用户(User)为例,一个角色下有多个用户,而一个用户只能属于一个角色.
从User到Role的关联就是多对一关联,这就意味着每个User对象只会引用一个Role对象,
因此在User类中应该定义一个Role类型的属性,类引用所关联的Role对象.
从Role到User是一对多关联,或者仅有从Role到User的关联,就称为单向关联.如果同时包含两种关联,就称为双向关联.
数据之间一对多或者多对一的关系,通常涉及两张表,"多"方表通过外键引用"一"方表的主键来实现一对多的关联
单向多表对一关联
首先咱们以User和Role为例,介绍通过使用外键来建立多对一的单向关联关系。
@ManyToOne(targetEntity = SysRole.class)
@JoinColumn(name = "user_role_id")
private SysRole role;
双向一对多关联
在前面的实例中,咱们已经建立了User类到Role类的单向多对一关联。
@OneToMany(targetEntity = SysUser.class , fetch = FetchType.LAZY , cascade =
cascadeType.PERSIST , mappedBy = "role")
private Set<SysUser> users = new HashSet<>();
Spring Boot集成Mybatis
MyBatis是支持普通的SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索分装。