gpt4 book ai didi

java - 如何从 Spring Data REST 中的页面获取列表

转载 作者:IT老高 更新时间:2023-10-28 13:48:05 26 4
gpt4 key购买 nike

我将 JPARespository 用于我的所有 CRUD 操作。最近想实现排序,所以我继续Pagable

问题是,我希望存储库方法返回 List 对象,我在我的服务层使用它们。

我怎样才能做到这一点,有没有办法将这些 Page 对象转换为 List

最佳答案

如果您在 jpa 存储库方法中使用 pageable,spring 将始终返回 Page 而不是 List。我建议您有一个服务方法,它调用存储库方法并将 Page 结果的内容提取到列表中。

所以如果你的存储库方法是这样的:

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface RecordRepository extends JpaRepository<Record, Integer>{
Page<Record> findAll(Pageable pageable);
}

那么你可以有一个服务类,它有一个调用存储库方法的方法

@Service
public class RecordService{

@Autowired
RecordRepository recordRepository;

public List<Record> findAll(PageRequest pageRequest){
Page<Record> recordsPage = recordRepository.findAll(pageRequest);
return recordsPage.getContent();
}
}

所以在您的调用类中,您可以直接使用该服务,而不是直接调用存储库。因此:

public class MyRecordImpl{
@Autowired
RecordService recordService;

public void doSomething(){
int page = 0; int pageSize = 5;
List<Record> recordList = recordService.findAll(new PageRequest(page, pageSize, new Sort(Sort.Direction.DESC, "recordId")));
//do other implementations here
}
}

关于java - 如何从 Spring Data REST 中的页面获取列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38809580/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com