java-Spring data jpa 如何进行分页联表查询?

问题描述

Spring data jpa 如何进行分页联表查询?

具体使用jpa方法:Page findAll(Specification spec, Pageable pageable);
查询语句:select
t.vehicle_id,t.id_number,t.org_code,t.vehicleStatus,t4.TYPE_NAME,t1.TERMINAL_ID,t2.TTYPE_NAME,T3.SIM_NUM
from V_VEHICLEINFO t
left join T_TERMINALINFO t1 on t1.TERMINAL_ID=t.TERMINAL_ID
left join T_TERMINALTYPE t2 on T2.TTYPE_ID=t1.TTYPE_ID
left join T_SIMINFO t3 on t3.SIM_ID=t1.SIM_ID
left join v_vehicletype t4 on T4.TYPE_ID=t.TYPE_ID;

解决方案

public Page<BusinessInfo> getListByPager(final String sSearch,int iDisplayStart,
        int iDisplayLength,int iSortCol_0,String sSortDir_0){

    Pageable pagerequest = buildPageRequest(iDisplayStart, iDisplayLength, iSortCol_0, sSortDir_0);

    Page<BusinessInfo> page = businessInfoDao.findAll(new Specification<BusinessInfo>(){
        @Override
        public Predicate toPredicate(Root<BusinessInfo> root,CriteriaQuery<?> query, CriteriaBuilder cb) {
            //左连接
            //root.join(root.getModel().getSingularAttribute("sysUsersX",SysUsersX.class),JoinType.LEFT);
            Predicate likeP1 = cb.like(root.get("name").as(String.class),"%"+sSearch+"%");
            //Predicate likeP2 = cb.like(depJoin.get("businessNumber").as(String.class), "%"+sSearch+"%");
            Predicate likeP2 = cb.like(root.get("businessNumber").as(String.class), "%"+sSearch+"%");
            Predicate orP = cb.or(likeP1,likeP2);
            //参考: http://www.iteye.com/problems/92130
            return cb.and(cb.conjunction(),orP);
        }
    },pagerequest);

    //pagerequest = page.nextPageable();

    return page;
}
时间: 2024-12-29 07:14:56

java-Spring data jpa 如何进行分页联表查询?的相关文章

代码-spring data jpa 按条件分页查询问题

问题描述 spring data jpa 按条件分页查询问题 自定义分页查询方法,代码: {"content":[],"totalPages":1,"totalElements":6,"last":true,"number":1,"size":10,"numberOfElements":0,"sort":null,"first"

spring data jpa 怎么处理多个表的查询呢?

问题描述 spring data jpa 怎么处理多个表的查询呢? 有什么好的方法来应对多个表之间复杂的连接查询? .

java spring data jpa 对page pageable接口的实现

问题描述 javaspringdatajpa是否已经对pagepageable接口进行了实现,如果有我该怎么进入源码.还有如下的代码intpage=1;intpageSize=5;Pageablepageable=newPageRequest(page,pageSize);Page<CourseRequest>allCourseRequest=courseRequestDao.findAll(pageable);1.我怎么这个时候从数据库得到的allCourseRequest对象context

lazy-Spring data JPA使用CriteriaQuery进行不定条件查询时,发起了多次查询

问题描述 Spring data JPA使用CriteriaQuery进行不定条件查询时,发起了多次查询 //PlatformSecurityUser为账户信息实体,和用户基本信息platformSysUser存在一对一的映射关系,fetchType为lazy //在获取账户信息的同时,希望一次获取用户基本信息-platformSysUser import javax.persistence.*; import javax.persistence.criteria.*; import java.

分页-关于 spring data jpa 的 PagingAndSortingRepository

问题描述 关于 spring data jpa 的 PagingAndSortingRepository 比如说@query 我们使用jpql语句 select u from user u where........ 我们使用PagingAndSortingRepository进行分页和排序,可以整整返回json, 但是如果我不要其中的一个属性 我就试着把其他属性都写上去除了不要的那个 例如 select username,passoword from user u where ... 但是问题

Spring Data JPA方法定义规范【从零开始学Spring Boot】

视频&交流平台] à SpringBoot网易云课堂视频 http://study.163.com/course/introduction.htm?courseId=1004329008 à Spring Boot交流平台 http://412887952-qq-com.iteye.com/blog/2321532           事情的起因:有人问过我们这个这个问题:为什么我利用Spring data jpa写的方法没有按照我想要的情况进行执行呢?我记得当时只是告诉他你你先看看Spring

springboot(五):spring data jpa的使用

在上篇文章springboot(二):web综合开发中简单介绍了一下spring data jpa的基础性使用,这篇文章将更加全面的介绍spring data jpa 常见用法以及注意事项 使用spring data jpa 开发时,发现国内对spring boot jpa全面介绍的文章比较少案例也比较零碎,因此写文章总结一下.本人也正在翻译Spring Data JPA 参考指南,有兴趣的同学欢迎联系我,一起加入翻译中! spring data jpa介绍 首先了解JPA是什么? JPA(Ja

spring boot(五):spring data jpa的使用

在上篇文章springboot(二):web综合开发中简单介绍了一下spring data jpa的基础性使用,这篇文章将更加全面的介绍spring data jpa 常见用法以及注意事项 使用spring data jpa 开发时,发现国内对spring boot jpa全面介绍的文章比较少案例也比较零碎,因此写文章总结一下.本人也正在翻译Spring Data JPA 参考指南,有兴趣的同学欢迎联系我,一起加入翻译中! spring data jpa介绍 首先了解JPA是什么? JPA(Ja

spring data jpa-学习Spring data jpa遇到了这个问题,求大家帮帮忙

问题描述 学习Spring data jpa遇到了这个问题,求大家帮帮忙 SEVERE: StandardWrapper.Throwable org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jpaMapppingContext': Invocation of init method failed; nested exception is java.lang.NoSuch