jpa Page 1 of 0 containing UNKNOWN instances错误

作者:LoveEmperor-王子様

一、问题:Page 1 of 0 containing UNKNOWN instances

这个问题一般是你多个条件查询时,有条件添加进去了,但为空条件;
例:

      List<Predicate> predicates = new ArrayList<>();
                if(!vo.getPhone().equals("0")){
                    predicates.add(cb.equal(root.get("phone"), vo.getPhone()));
                }
                if(0 != vo.getTitleType()){
                    predicates.add(cb.equal(root.get("titleType"), vo.getTitleType()));
                }
                if(!vo.getInvoiceTitle().equals("0")){
                    predicates.add(cb.equal(root.get("invoiceTitle"), vo.getInvoiceTitle()));
                }

比如第三个条件有条件添加进去,但vo.getInvoiceTitle()是空值,就会报错;

二、问题:Page 1 of 1 containing UNKNOWN instances

这个问题一般是你分页查询,page为1(page默认从0开始),但没有1页(也就是没有第二页);
所以你应该page从0开始赋值;
例:

Pageable pageable = new PageRequest(vo.getPageNumber()-1, vo.getPageSize(), Sort.Direction.ASC, "id");

Page<InvoiceInfo> page = this.invoiceInfoRepository.findAll(getCondition(vo), pageable);
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
1.本版本的需要2.0框架支持<br>2.功能:<br> 支持数据缓存<br> 支持分页方式多样化<br> 支持SQL数据库<br> 支持GridView数据表格<br><br> 请注意若您需要用到图片分页模式请拷贝Images文件夹.如果需要定义自己的图片样式,请不要改变图片的名称即可.<br><br>3.不足 <br> 控件暂时只支持SQL数据库其他数据库的支持接口以完成还没来得及写,有时间我会升级<br> 控件暂时不支持存储过程<br> 现在发布的也只是个BATE版有BUG欢迎指正<br> 邮箱:wensifww@163.com<br> QQ:24754991<br> QQ群:24604453<br><br> <br>4版本升级<br> (1) SqlPage 1.0.1.0 版本:(修改时间:2006-11-23)<br> 1.修正了在不使用缓存的情况下控检不显示数据的BUG<br> 2.去除HasGridView属性该为控件自行判断数据表格类型<br> 3.增加在用缓存模式下改变SQL语句获得新数据功能<br> 4.在绑定表格后对表格操作后绑定更加简单只需添加SqlPage1.DataBind()方法即可<br> 去除程序员写繁琐的绑定CODE<br> 5.添加了ControlToPaginate内置属性用于获得当前控件所绑定的数据表格控件<br> <br> (2)SqlPage 1.0.1.2 版本:(修改时间:2007-1-27)<br> 1.修正了表格控检在多层中SqlPage找不到绑定控件的BUG。 <br> 2.应很多朋友呼吁删除排序字段开发排序SQL语句,由程序员自己写<br><br> (3)SqlPage 1.1.4.8 版本:(修改时间:2007-7-31)<br> 1.优化数据读取(支持百万级数据读取)<br> 2.分页控件资源集成化,不需要用户Copy控件资源文件<br> 3.分页控件排序优化:默认情况下为表主键排序<br> 4.修正分页控件在删除当前索引也中所有行不能自动转到上一页的错误<br> 5.添加分页的排序方式<br> 6.自定义排序的字段<br> 7.修正在除GridView外表格控件绑定空数据库时出错问题<br> 8.修正用户SQL语句后面带分号出错<br> 9.修正降序排序单页显示成升序的错误<br> (4)SqlPage 1.2.2.3 版本:(修改时间:2007-8-9)<br> 1.修正MSSQL用户SQL语句中同时带有TOP 和ORDER BY 语句程序不能识别问题<br> 2.添加了以分页段的分页样式丰富了分页样式<br> 3.做了一个控制分页控件样式表(CSS)的DOME(有朋友不知道怎么去控制这里简单的 说明使用方法,很简单)<br> 4.修正MSSQL用户SQL语句中ORDER BY再次绑定的问题 <br> 5.修正控件分页模式在图片分页模式下控件编辑状态出错问题<br> 6.新添了控件自动添加前缀功能(Wensi)<br> 7.新增分页跳转类型,两种:下拉列表框和文本框,系统默认为下拉列表框,(在实际开发中我们发现下拉列表框在分页数达到1000级以上的时候明显变慢,所以建议大家在分页数很大时使用文本框类型这样可以明显提高效率)<br> 8.新增控件样式CSS文件是否用系统自带的样式文件还是用户自定义样式文件属性 HasSystemPageStyle<br> (5)SqlPage 1.2.5.3 版本:(修改时间:2007-10-24)<br> 1.修改了在2次绑定无数据时现实前一次绑定数据的BUG<br> 2.修改了在页面索引为-1时系统不能正常恢复显示数据BUG<br>如果您在使用中发现BUG或有很好的建议请联系我,让大家一起参与进来维护好这个控件.<br>
在使用 Spring Data JPA 进行分页查询时,可以通过 `Page` 接口来封装查询结果,并进行分页信息的传递。如果需要将 `Page` 对象转换成其他类型的对象,可以使用如下方式进行转换。 假设需要将 `Page<User>` 对象转换成 `PageDTO<UserDTO>` 对象,其中 `UserDTO` 是 `User` 的数据传输对象。 首先,定义 `PageDTO` 类型: ```java public class PageDTO<T> { private int pageNumber; private int pageSize; private long totalElements; private List<T> content; // 省略 getter 和 setter 方法 } ``` 然后,编写转换方法: ```java public PageDTO<UserDTO> convertToDTO(Page<User> page) { List<UserDTO> userDTOList = page.getContent() .stream() .map(user -> new UserDTO(user.getId(), user.getName())) .collect(Collectors.toList()); PageDTO<UserDTO> pageDTO = new PageDTO<>(); pageDTO.setPageNumber(page.getNumber()); pageDTO.setPageSize(page.getSize()); pageDTO.setTotalElements(page.getTotalElements()); pageDTO.setContent(userDTOList); return pageDTO; } ``` 在上述代码中,使用 `Stream` 对 `Page<User>` 中的每个 `User` 对象进行转换,并将转换后的 `UserDTO` 对象收集到一个 `List` 中。然后,将 `Page<User>` 的分页信息和转换后的 `UserDTO` 列表设置到 `PageDTO<UserDTO>` 对象中,并返回该对象。 需要注意的是,在 `UserDTO` 类型中需要提供相应的构造方法或 setter 方法,以便能够将 `User` 对象中的数据转换成 `UserDTO` 对象中的数据。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王子様~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值