Jeśli używasz strony w repozytorium jpa, sprężyna zawsze zwróci stronę, a nie listę. Sugeruję, że masz metodę usługi, która wywołuje metodę repozytorium i wyodrębnia zawartość wyniku strony do listy.
Więc jeśli repozytorium metoda jest tak:
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);
}
wtedy można mieć klasę usług, która ma metodę, która wywołuje metodę repozytorium
@Service
public class RecordService{
@Autowired
RecordRepository recordRepository;
public List<Record> findAll(PageRequest pageRequest){
Page<Record> recordsPage = recordRepository.findAll(pageRequest);
return recordsPage.getContent();
}
}
więc w swojej klasie wywołującej zamiast dzwonić repozytorium bezpośrednio możesz skorzystać z usługi. tak:
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
}
}
ale czy '.getContent()' powrócić wszystko od wszystkich strony, czy tylko dane tej samej strony? – mmcrae
@mmcrae the .getContent() zwraca tylko dane jednej strony. – Sohlowmawn
Jak uzyskać wszystko ze wszystkich stron i przekonwertować je na listę? – gavinSong