在官网没看到spring-data-jpa分页使用的栗子,所有不太会用。
Page findCourseSortByHot(Pageable pageable);
spring-data-jpa在发出sql语句时,是根据方法名中的SortByHot呢还是根据Pageable中设置的sort,发出sql语句呢?
@Query (" ")
Page findCourseSortByHot1(Pageable pageable);
使用@Query后,调用改方法时是只执行@Query后的sql语句还是配合着Pageable一起再生成语句呢?
否则这里的Pageable是如何作用的呢?
用过的各位,帮忙解答下,或是有分页栗子的给个链接参考下,多谢啦
public Page<Projectsort> findAll(Specification<Projectsort> spec, Pageable page);
Specification<Projectsort> spec = getWhere(search);
PageRequest request = new PageRequest(num - 1, size,
Sort.DEFAULT_DIRECTION.DESC, "projectsortserial");
Page<Projectsort> pageList = sortRepo.findAll(spec, request);
private Specification<Projectsort> getWhere(final SortSearch search) {
return new Specification<Projectsort>() {
@Override
public Predicate toPredicate(Root<Projectsort> root,
CriteriaQuery<?> query, CriteriaBuilder builder) {
List<Predicate> predicate = new ArrayList<Predicate>();
if (search.getMattertype() != null) {
predicate.add(builder.equal(root.get("mattertype"),
search.getMattertype()));
}
if (search.getSerial() != null) {
predicate.add(builder.equal(root.get("projectsortserial"),
search.getSerial()));
}
if (search.getDepId() != null) {
predicate.add(builder.equal(root.get("departmentid"),
search.getDepId()));
}
if (search.getProjectsortname() != null) {
predicate.add(builder.like(
(Path) root.get("projectsortname"),
"%" + search.getProjectsortname() + "%"));
}
predicate.add(builder.equal(root.get("useflag"),
search.getUserFlag()));
predicate.add(builder.equal(root.get("delflag"),
search.getDelFlag()));
Predicate[] pre = new Predicate[predicate.size()];
return query.where(predicate.toArray(pre)).getRestriction();
}
};
}
class SortSearch {
private String mattertype;
private String serial;
private String sortName;
private String userFlag;
private String delFlag;
private String depId;
private String projectsortname;
public String getProjectsortname() {
return projectsortname;
}
public void setProjectsortname(String projectsortname) {
this.projectsortname = projectsortname;
}
public String getDepId() {
return depId;
}
public void setDepId(String depId) {
this.depId = depId;
}
public String getUserFlag() {
return userFlag;
}
public void setUserFlag(String userFlag) {
this.userFlag = userFlag;
}
public String getDelFlag() {
return delFlag;
}
public void setDelFlag(String delFlag) {
this.delFlag = delFlag;
}
public String getMattertype() {
return mattertype;
}
public void setMattertype(String mattertype) {
this.mattertype = mattertype;
}
public String getSerial() {
return serial;
}
public void setSerial(String serial) {
this.serial = serial;
}
public String getSortName() {
return sortName;
}
public void setSortName(String sortName) {
this.sortName = sortName;
}
}
if (pageList != null && pageList.getSize() > 0) {
Iterator<Projectsort> it = pageList.iterator();
while (it.hasNext()) {
Projectsort sort = it.next();
//获取结果集 循环操作
}
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。