前言
多表联接查询在Spring Data JPA中有两种实现方式:
第一种是创建一个结果集的接口来接受多表联查后的结果
第二种是利用JPA的关联映射来实现
本篇文章主要是讲述第二种方式来实现多表联查,也是目前最常用的
application.properties 配置文件代码如下:
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/crm?useUnicode=true&charcaterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=root
# 指定数据库方言(数据库类型)
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
# 是否打印自动生成的SQL语句
spring.jpa.show-sql=true
# 是否格式化显示SQL语句
spring.jpa.properties.hibernate.format_sql=true
这里我用最常用的用户表(User)跟角色表(Role)来做演示,用户表(userRoleId)跟角色表(roleId)之间存在着主外键关系
一、单向多对一关联
代码如下(示例):
@Data
@Entity//表示持久化
@Table(name = "user")//关联数据库表
public class User implements Serializable {
//实体类
@Id//表示主键
@GeneratedValue(strategy = GenerationType