零.背景和题外话
工作中经常用到JPA去做CURD。出于对某事物全部或部分属性空白时,本能的想添加此事物的属性的内在心理,正好手上有在搭一个新的练手项目,于是开启了Debug分析之旅。读完这篇文章,你将从源码层面明白JPA是如何工作的。值得注意的是:**JPA是一个规范,而非像Hibernate一样是一个解决方案。**这一点在后文也将有所体现。
- 目录
- 零.背景和题外话
- 一.Dao的接口分析
- 二.调用过程分析
- 三.完整过程总结
一.Dao的接口分析
这是一个基本的Dao接口。如图:
重点就在JpaRepository和JpaSpecificationExecutor接口上。由于我们的Dao类们根据不同的需求会继承这俩接口,于是,下面这些查询方法都能够使用。
JPARepository源码::
JpaSpecificationExecutor源码:
知道了是哪些方法起作用,好奇心驱使着我就继续挖掘这些方法