工作的最重要的动力是工作中的乐趣,是工作获得结果时的乐趣 以及对这个结果的社会价值的认识。
Spring Data JPA 一共七个接口
- Repository (org.springframework.data.repository)
- CrudRepository (org.springframework.data.repository)
- PagingAndSortingRepository (org.springframework.data.repository)
- QueryByExampleExecutor (org.springframework.data.repository.query)
- JpaRepository (org.springframework.data.jpa.repository)
- JpaSpecificationExecutor (org.springframework.data.jpa.repository)
- QueryDslPredicateExecutor (org.springframework.data.querydsl)
- 顶级接口 Repositroy
两个实现类:
- SimpleJpaRepository (org.springframework.data.jpa.repository.support)
- QueryDslJpaRepository (org.springframework.data.jpa.repository.support)
需要了解的类,真正的JPA的底层封装类。
- EntityManager (javax.persistence)
- EntityManagerImpl (org.hibernate.jpa.internal)
Jpa实现类 SimpleJpaRepository //如果需要扩展可以继承此类
重要属性
EntityMnager //进行实体的操作
JpaEntityInforMation //保存实体相关信息和Crud方法的元数据
Projections对查询结果的扩展
通过QueryExecutorMethodInterceptor这个类的源代码,我们发 现这个类实现了MethodInterceptor接口。也就是说它是一个方法调 用的拦截器,当一个Repository上的查询方法(譬如 findByEmailAndLastname方法)被调用时,Advice拦截器会在方法真 正地实现调用前先执行MethodInterceptor的invoke方法。这样我们 就有机会在真正方法实现执行前执行其他的代码了。
JPA类层次结构的显示单元