java jpa 模糊查询_JPA 以SQL语句实现分页加模糊查询(参数可能为空)

repository代码:

package com.fancy.miniflow.repository;

import java.util.List;

import org.springframework.data.jpa.repository.JpaRepository;

import org.springframework.data.jpa.repository.JpaSpecificationExecutor;

import org.springframework.data.jpa.repository.Query;

import com.fancy.miniflow.entity.UploadRecord;

public interface UploadRecordRepository extends JpaRepository,JpaSpecificationExecutor {

@Query(nativeQuery = true , value = "SELECT * from upload_record "

+ "WHERE if(?1 !=‘‘,upload_time < ?1,1=1) AND if(?2 !=‘‘,upload_time > ?2,1=1) AND if(?3 !=‘‘,id = ?3,1=1) LIMIT ?4,?5")

List getList(String endTime , String startTime , Integer id , Integer p ,Integer pageSize );

}

service代码:

package com.fancy.miniflow.serviceimp;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Service;

import com.fancy.miniflow.entity.UploadRecord;

import com.fancy.miniflow.repository.UploadRecordRepository;

@Service

public class UploadRecordService {

@Autowired

private UploadRecordRepository uploadRecordRepository;

public List getUploadRecord(int page , int pageSize , String beginTime , String endTime , Integer id){

Integer p = (page - 1)*pageSize;

List list = uploadRecordRepository.getList(endTime, beginTime, id, p, pageSize);

return list;

}

}

你可能感兴趣的:(java,jpa,模糊查询)