JPA多表查询
多表查询在Spring Data JPA中有两种实现方式,第一种使创建一个结果集的接口来接收多表联接查询后的结果,第二种是利用JPA的关联映射来实现
单项多对一关联
@ManyToOne注解映射多对一关联关系,targetEntity属性表示关联实体类型,
@JoinColumn注解映射关联的外键字段,如不指定,则生成一张新表维护两个对象之间的关系.
Spring Boot 集成MyBatis
回顾MyBatis
1 .Mybatis 是一个可以自定义SQL、存储过程和高级映射的持久层框架。
2.Mybatis 摒除了大部分的JDBC代码、手工设置参数和结果集重获。
3.Mybatis 只使用简单的XML和注解来配置和映射基本数据类型、Map接口和POJO到数据库记录。
他的优点:
(1)SQL被统一提取出来,便于统一管理和优化.
(2)SQL和代码解耦,将业务逻辑和数据服务逻辑分离,使系统的设计更清晰,更易维护.更易单元测试.
(3)提供映射标签,支持对象与数据库的ORM字段关系映射.
(4)提供对象关系映射标签,支持对象关系组件维护.
(5)灵活书写动态SQL,支持各种条件来动态生成不同的SQL
他的缺点:
(1)编写SQL语句是时工作量很大,尤其是字段多,关联表多时,更加如此.
(2)SQL语句依赖于数据库,导致数据库移植性很差.
MyBatis几个重要的概念:
Mapper 配置:可以使用基于XML的Mapper配置文件来实现,也可以使用基于Java注解的MyBatis注解来实现,设置可以直接使用MyBatis提供的API实现.
Mapper接口:是指自行定义的一个数据操作接口,类似于通常所说的DAO接口.早期的Mapper接口需要自定义去实现,现