您的位置:首页 > 编程语言 > ASP

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

2018-02-08 08:34 537 查看

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

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

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

Repository

public interface DeviceRepository extends JpaRepository<Device, Long>, JpaSpecificationExecutor<Device> {

List<Device> findByUserId(Long id);
}


Service

public interface DeviceService {
List<Device> findDeviceByUser(User user);
}


Service实现类

// 根据用户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();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: