我是靠谱客的博主 无聊冰淇淋,这篇文章主要介绍第七章Spring-data-jpa扩展之JpaSpecificationExecutor,现在分享给大家,希望可以做个参考。

第七章Spring-data-jpa扩展之JpaSpecificationExecutor

不属于Repository体系,实现一组 JPA Criteria 查询相关的方法

Specification:封装 JPA Criteria 查询条件。通常使用匿名内部类的方式来创建该接口的对象

Repository

复制代码
1
2
3
public interface DeviceRepository extends JpaRepository<Device, Long>, JpaSpecificationExecutor<Device> { List<Device> findByUserId(Long id); }

Service

复制代码
1
2
3
public interface DeviceService { List<Device> findDeviceByUser(User user); }

Service实现类

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// 根据用户id查找 public Page<Device> findByUser(Pageable pageable, Integer id) { Specification<Device> specification = new Specification<Device>() { @Override public Predicate toPredicate(Root<Device> root,CriteriaQuery<?> query, CriteriaBuilder cb) { //root.get后跟实体类的属性,与数据库的字段对应 Path<String> id1 = root.get("user"); query.where(cb.equal(id1, id)); //这种方式使用JPA的API设置了查询条件,所以不需要再返回查询条件Predicate给Spring Data Jpa,故最后return null;即可。 return null; } }; return sRepository().findAll(specification, pageable); } return null; } },pageable); return page.getContent(); } }

最后

以上就是无聊冰淇淋最近收集整理的关于第七章Spring-data-jpa扩展之JpaSpecificationExecutor的全部内容,更多相关第七章Spring-data-jpa扩展之JpaSpecificationExecutor内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部