【问题标题】:PaginationAndSortingRepository returning emptyPaginationAndSortingRepository 返回空
【发布时间】:2018-05-21 12:47:17
【问题描述】:

我正在开发一个需要使用pagination 显示一些屏幕的应用程序。我从 Spring Data JPA 的 PaginationAndSortingRepository 开始。一切似乎都工作正常,但是当我执行代码时我无法获取数据,它在 Eclipse 控制台上返回空而没有任何错误。

以下是我的控制器代码:-

@RequestMapping(value="/monatsultimodata" , method=RequestMethod.Get)
public List<Monatsultimo> getData(Pageable pageable){
List<Monatsultimo> dataList = null ;
try{
dataList= monatsultimoservice.getData(pageable)
}catch(Exception e){
e.printStackTrace();
}
return dataList;
}

以下是我的服务代码:-

public List<Monatsultimo> getData(Pageable pageable){
List<Monatsultimo> tableData = new AarrayList();
monatsultimorepo.findAll(pageable)
return tableData;
}

以下是我的存储库代码:-

@Repository
public interface MonatsultimoRepo extends 
PagingAndSortingRepository<MonatSultimo, Integer>{
}

下面是我的 application.yaml 文件

    jpa:
        properties:
            hibernate:
                format_sql: true
                show_sql: true
                type: 'debug'
                use_sql_comments: true
                ddl-auto:update
server:
        port: 9000

security:
    basic:
        enabled: false                                 

我用来访问 Rest 服务的 URL - localhost:9000/Add to dictionary?page=0&size=25

一切正常,直到它返回时没有数据。请帮助我,这几天我一直在努力。

提前谢谢..

【问题讨论】:

  • 查看您的服务代码..
  • 在 stack-overflow 上提出此类问题之前..查看您的代码..

标签: java spring-boot spring-data-jpa


【解决方案1】:

在返回tableData之前将monatsultimorepo.findAll(pageable)的结果赋值给tableData

服务:

 public List<Monatsultimo> getData(){
   List<Monatsultimo> tableData = new AarrayList();
   tableData =monatsultimorepo.findAll()
   return tableData;
 }

控制器:

@RequestMapping(value="/monatsultimodata" , method=RequestMethod.Get)
   public List<Monatsultimo> getData(){
     List<Monatsultimo> dataList = null ;
     try{
       dataList= monatsultimoservice.getData()
     }catch(Exception e){
     e.printStackTrace();
   }
   return dataList;
 }

存储库:

@Repository
public interface MonatsultimoRepo extends JpaRepository<MonatSultimo,Integer>{
}

【讨论】:

  • 谢谢伙计,缺乏关注,花时间在这上面感觉很糟糕。但现在它给出了错误,无法从 Page 转换为 List
  • 无法从 Page 转换为 List
  • 因为monatsultimorepo.findAll(pageable)的返回类型是Page&lt;Monatsultimo&gt;
  • 为什么不应该使用JpaRepository..只是改变你的repository代码..而不是PagingAndSortingRepository扩展JpaRepository..不要改变任何其他的东西
  • 使用 JpaRepository 代替 PagingAndSortingRepository 有什么好处????
【解决方案2】:

您好,在您的 Spring 应用程序中提供分页,我将应用以下更改:

控制器

import org.springframework.data.domain.PageRequest;
import org.springframework.web.bind.annotation.RequestParam;

@RequestMapping(value="/monatsultimodata", method=RequestMethod.Get)
public List<Monatsultimo> getData(final @RequestParam("page") int page, 
       final @RequestParam("size") int size)
{
       List<Monatsultimo> dataList = null;

       try
       {
           dataList = monatsultimoservice.getData(new PageRequest(page, size));
       } catch(Exception e)
       {
           // Recommended output to a logger.
           e.printStackTrace();
       }
       return dataList;
}

服务

返回的页面对象包含总页数等信息 - page reference

import org.springframework.data.domain.Page;

public List<Monatsultimo> getData(final Pageable pageable)
{
    Page<Monatsultimo> page = monatsultimorepo.findAll(pageable);
    return page.getContent();
}

其他一切都将保持不变。

【讨论】:

    猜你喜欢
    • 2018-12-23
    • 2021-07-07
    • 2013-09-30
    • 2021-08-23
    • 2013-04-07
    • 2016-01-01
    • 2020-11-05
    • 1970-01-01
    • 2011-09-23
    相关资源
    最近更新 更多