# spring-data-jpa-guide **Repository Path**: stevenworkshop_admin/spring-data-jpa-guide ## Basic Information - **Project Name**: spring-data-jpa-guide - **Description**: 张振华的JPA代码,从GitHub拉太慢了 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-01-11 - **Last Updated**: 2022-03-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## spring-data-jpa-guide > [http://www.jackzhang.cn/spring-data-jpa-guide/](http://www.jackzhang.cn/spring-data-jpa-guide/) ## Spring Data Jpa 实战 - [01:整体认识JPA](./《SpringDataJpa实战》书/01.md) - [02:Jpa基础查询方法JpaRepository详解 ](./《SpringDataJpa实战》书/02.md) - [03:定义查询方法(Defining Query Methods ](./《SpringDataJpa实战》书/03.md) - [04:注解式查询方法 ](./《SpringDataJpa实战》书/04.md) - [05:@Entity实例里面常用注解详解 ](./《SpringDataJpa实战》书/05.md) - [06:JpaRepository扩展之QueryByExampleExecutor](./《SpringDataJpa实战》书/06.md) - [07:JpaRepository扩展之JpaSpecificationExecutor](./《SpringDataJpa实战》书/07.md) - [08 : JpaRepository扩展之自定义Repositor ](./《SpringDataJpa实战》书/08.md) - [09:Auditing与@version ](./《SpringDataJpa实战》书/09.md) - [10:对MvcWeb的支持分页和排序的支持 ](./《SpringDataJpa实战》书/10.md) - [11:Spring Data Jpa的配置之SpringBoot2.0加载详解](./《SpringDataJpa实战》书/11.md) - [12:DataSource的配置与事务详解、多数据源 ](./《SpringDataJpa实战》书/12.md) - [13:Spring Data Jpa之QueryDSL支持 ](./《SpringDataJpa实战》书/13.md) ## Spring Data Redis 正确使用姿势 - [01: Redis 介绍](./SpringDataRedis用法/0.md) - [02: Jedis 客户端用法](./SpringDataRedis用法/1.md) - [03: Spring Data Redis 的配置方法](./SpringDataRedis用法/2.md) - [04: Spring Cache 用法](./SpringDataRedis用法/3.md) - [05: Cache 和 Spring Data Redis 结合](./SpringDataRedis用法/4.md) - [06: 实际工作中 Redis 常用的一些工具和命令](./SpringDataRedis用法/5.md) - [07: 分布式和高并发环境下在使用 Redis 的时候,我们需要考虑的东西](./SpringDataRedis用法/6.md) - [08: Redis 服务端和客户端的原理](./SpringDataRedis用法/7.md) ## Spring Data JPA入门 实战与进阶 [《Spring Data JPA入门 实战与进阶》现货正版包邮 Spring Data JPA:入门、实战与进阶 ](https://s.click.taobao.com/gHo2tcu) ## Spring DATA JPA 扩展阅读 1. [Spring Data JPA 晋级提升篇:复杂场景实战用法与优化](./SpringDataJpa高级用法补充/SpringDataJPA的一些高级用法扩展.md) 2. [Session与CompletableFuture的使用遇到的一些坑](https://github.com/zhangzhenhuajack/spring-data-jpa-guide/wiki/%E5%A4%9A%E7%BA%BF%E7%A8%8B%E7%8E%AF%E5%A2%83%E4%B8%8B%E9%81%87%E5%88%B0%E7%9A%84Session%E7%9A%84%E6%9B%B4%E6%96%B0%E7%9A%84%E5%9D%91%EF%BC%8CCompletableFuture%E4%BD%BF%E7%94%A8%E7%9A%84%E5%9D%91) 3. [SpringDataJpa之Hibernate5.0的Entity判断Dirty的过程 ](https://github.com/zhangzhenhuajack/spring-data-jpa-guide/wiki/SpringDataJpa%E4%B9%8BHibernate5.0%E7%9A%84Entity%E5%88%A4%E6%96%ADDirty%E7%9A%84%E8%BF%87%E7%A8%8B) 4. [SpringDataJPA之Hibernate加载过程](https://github.com/zhangzhenhuajack/spring-data-jpa-guide/wiki/SpringDataJPA%E4%B9%8BHibernate%E5%8A%A0%E8%BD%BD%E8%BF%87%E7%A8%8B) 5. 高级用法学习资料: https://github.com/eugenp/tutorials/tree/master/spring-rest-query-language ## 源码说明: > 源码太分散不利于大家查找,所以就给大家放在一起了,可以根据需要自取。 1. 1.5.9对应的文件夹 是《Spring Data JPA入门到精通》书上对应的源码 2. 2.0.0对应的文件夹是《Spring Data JPA实战》书上对应的源码 3. Java并发编程入门到精通是《Java并发编程入门到精通》书上对应的源码 4. 2.3 对应的是《Spring Data JPA:入门、实战与进阶》书上的源码,预计2021-10 JD能上架出售 5. 2.3/jpa_base_all_quick_start_rest 经典JPA脚手架项目,快速入门体验JPA能做到什么效果 ## 欢迎大家一起修改和提交 1. 提issue或者mr都可以 [https://github.com/zhangzhenhuajack/spring-data-jpa-guide](https://github.com/zhangzhenhuajack/spring-data-jpa-guide) 2. 同时注意issue和wiki的更新 [https://github.com/zhangzhenhuajack/spring-data-jpa-guide](https://github.com/zhangzhenhuajack/spring-data-jpa-guide) ## 第三方资料阅读指南 ### 阅读文档顺序: ##### 1. SpringDataJPA:[https://docs.spring.io/spring-data/jpa/docs/current/reference/html/](https://docs.spring.io/spring-data/jpa/docs/current/reference/html/) ##### 2. JPA协议重点:https://docs.oracle.com/javaee/5/tutorial/doc/bnbqa.html ##### 3. Hibernate文档:https://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/Hibernate_User_Guide.htm ##### 4. JPA详细协议:https://github.com/eclipse-ee4j/jpa-api ##### 5. 扩展阅读: https://github.com/eugenp/tutorials/tree/master/persistence-modules/spring-data-jpa https://github.com/eugenp/tutorials/tree/master/persistence-modules/spring-data-jpa-2 https://github.com/eugenp/tutorials/tree/master/persistence-modules/spring-data-jpa-3 https://github.com/eugenp/tutorials/tree/master/persistence-modules/spring-data-jpa-4 ##### 6.Tips: https://dzone.com/articles/50-best-performance-practices-for-hibernate-5-amp https://dzone.com/articles/best-performance-practices-for-hibernate-5-and-spr https://vladmihalcea.com/how-to-implement-equals-and-hashcode-using-the-jpa-entity-identifier/ ## 推荐查阅文档 1. https://github.com/eclipse-ee4j/jpa-api 1. https://github.com/eugenp/tutorials/tree/master/persistence-modules/spring-data-jpa 1. https://docs.spring.io/spring-data/data-jpa/docs/ 2. https://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/Hibernate_User_Guide.html#architecture-overview 3. https://www.docs4dev.com/docs/zh/hibernate-orm/5.4/reference/hibernate_user_guide.html 4. https://github.com/zhangzhenhuajack/spring-data-jpa-guide/blob/master/doc/High-Performance.Java.Persistence.pdf 5. https://github.com/zhangzhenhuajack/spring-data-jpa-guide/blob/master/doc/JavaPersistence2.2.0.pdf 6. https://github.com/zhangzhenhuajack/spring-data-jpa-guide/blob/master/doc/SpringDataJPA%E5%85%A8%E9%9D%A2%E8%AE%A4%E8%AF%86.key ## 如果大家觉得有用欢迎请老师喝瓶水或者喝杯咖啡: ![](images/IMG_4559(20200804-084753).JPG) ## 常见ISSUE 1. Spring Data JPA利用@EntityGraph解决N+1的SQL查询问题: @OnetoOne @OneToMany https://github.com/zhangzhenhuajack/spring-data-jpa-guide/issues/36 2. 禁用spring.jpa.show-sql=true ;原因:https://github.com/zhangzhenhuajack/spring-data-jpa-guide/issues/39 3. spring data jpa在保存数据的时候,会有缓存问题吗 https://github.com/zhangzhenhuajack/spring-data-jpa-guide/issues/38 4. 如果在Dirty判断的时候,当前session中缓存对比数据库来讲已经不是最新的。那么JPA会如何进行处理?https://github.com/zhangzhenhuajack/spring-data-jpa-guide/issues/34 5. 解决save的时候不产生select语句,直接insert,提高批量操作是提升insert的效率 https://github.com/zhangzhenhuajack/spring-data-jpa-guide/issues/31 ## QQ交流群:559701472