
Spring Data JPA进阶
程铭程铭你快成名
这个作者很懒,什么都没留下…
展开
-
Spring Data JPA进阶(一):自定义实现
此系列为Spring Data JPA进阶篇,主要介绍一些不常用但强大的Spring Data JPA使用技巧。在给别人介绍Spring Data JPA的时候,往往会得到这样一个回复:Spring Data JPA使用起来是很方便,但是不够灵活。比如Mybatis,基于SQL,就可以很灵活。其实Spring Data JPA也可以很灵活,甚至比Mybatis更灵活。比如我们要使用Spring...原创 2019-06-24 15:30:13 · 5184 阅读 · 0 评论 -
Spring Data JPA进阶(二):Projections
在使用Spring Data JPA的时候,我们可能需要查询某个实体的部分字段。比如我的个人网站,文章内容其实是存在数据库里面的,这个字段很大。但是我们在展示文章列表的时候,其实是没必要把文章内容查出来的,只需要查询其它字段。在上篇自定义实现中,示例代码里展示了如何查询某个实体的单个字段:@Query("select u.name from User u where u.id=?1")Str...原创 2019-06-24 15:30:25 · 6590 阅读 · 0 评论 -
Spring Data JPA进阶(三):Specification查询
Spring Data JPA支持非常丰富的查询方式,本文主要介绍Specification查询。JPA 2 规范引进了criteria查询API。Spring Data JPA对此提供了支持。如果你想使用这个功能,只需要继承JpaSpecificationExecutor接口。这个接口已经实现了基本的查询方法(findOne,findAll,count等)。public interface ...原创 2019-06-24 15:30:34 · 19272 阅读 · 4 评论 -
Spring Data JPA进阶(四):Example查询
Example查询翻译过来叫“按例查询(QBE)”。是一种用户界面友好的查询技术。 它允许动态创建查询,并且不需要编写包含字段名称的查询。 而且按示例查询不需要使用特定的数据库的查询语言来编写查询语句。官方文档有一个优劣势的说明:优势:可以使用动态或者静态的限制去查询在重构你的实体的时候,不用担心影响到已有的查询可以独立地工作在数据查询API之外劣势:不支持组合查询,比如:fi...原创 2019-06-24 15:30:40 · 19156 阅读 · 0 评论 -
Spring Data JPA进阶(五):事务和锁
事务默认情况下,Spring Data JPA提供的CRUD方法都添加了事务,这里的事务使用的是Spring的事务管理机制。对于读操作来说,事务的readOnly属性是设置的true(默认值是false),而其他操作都是设置的一个空的@Transactional注解,所以使用的都是Spring事务的默认配置。如何在持久层使用事务如果你想覆盖某个方法的事务配置,可以在自己的接口里面覆盖那个方法...原创 2019-06-24 15:30:50 · 7879 阅读 · 3 评论