详解SpringDataJPA如何实现带条件分页查询-创新互联

小编这次要给大家分享的是详解Spring Data JPA如何实现带条件分页查询,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。

目前成都创新互联已为千余家的企业提供了网站建设、域名、雅安服务器托管成都网站托管、企业网站设计、云浮网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

Spring Data JPA的Specification类, 是按照Eric Evans的《领域驱动设计》书中Specification的概念和语义来定义查询条件的API。
使用Spring Data JPA, 我们一般将自己的dao接口继承CrudRepository接口和JpaSpecificationExecutor接口, 由框架生成代理类来完成具体的调用, 而不用自己写daoImpl实现类, 因为这两个接口自带了很多方法, 如果我们写实现类会发现一上来就需要实现十来个方法, 比较麻烦。

其中CrudRepository接口主要负责增/删/改的操作, JpaSpecificationExecutor接口主要负责查询的操作, 另外, 框架还支持在dao接口的方法名上定义一些简单的语义来进行增删改查, 底层会对应地做具体实现。

那如何封装具体的查询条件呢?

在service层调用dao接口从JpaSpecificationExecutor继承的抽象查询方法, 它就会自动让你准备相关实参, 其中Specification对象就是经常用在条件查询的方法的一个形参, 也就是说, 封装查询条件的过程转移到service层了。

我们一般以匿名内部类的方式new一个Specification对象, 实现其中的toPredicate方法, 举个例子,

Specification specification = new Specification() {
      @Override
      public Predicate toPredicate(Root root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) {
      ...
};

另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站题目:详解SpringDataJPA如何实现带条件分页查询-创新互联
本文网址:http://azwzsj.com/article/csssse.html