我有一个服务MyMainService
,它调用同一包中的另一个服务MySecondaryService
。 在MySecondaryService
中调用的方法getPagesOfMyObjects
返回MyObject
类型的对象的 Page,该方法的参数之一是Pageable
对象。MyMainService
目前不关心分页。 但是,由于我需要在MySecondaryService
中调用getPagesOfMyObjects
方法,因此我需要为其提供一个不会排除我可能需要的任何记录的Pageable
对象。 我当前的解决方案(不是很好(是将其作为Pageable
参数传递
public class MyMainServiceImpl implements MyMainService {
@Autowired
private MySecondaryService mySecondaryService
public void myMethod() {
Page<MyObject> pages = mySecondaryService.getPagesOfMyObjects(PageRequest.of(0, 10000));
List<MyObject> myObjects = pages.getContent();
//do stuff
}
}
如您所见,它有 10000 个硬编码作为其大小参数。 这对我来说不是好的做法。 有没有更好的方法来调用此服务? 我无法选择重写现有的getPagesOfMyObjects
方法。
最后我用Pageable.unpaged()
作为参数代替PageRequest.of(0, 10000)
,这似乎有效。
如果您首先不需要分页,为什么要传递可分页并解开内容? 假设mySecondaryService
是你的,你可以向它添加一个未分页的findAll
方法并使用该方法。
List<MyObject> myObjects = mySecondaryService.getAllMyObjects();
(顺便说一句,Pageable.unpaged()
引擎盖下做同样的事情(