Selam arkadaşlar. Sorunumu şöyle anlatayım. Sunucu tarafında sayfalama yapıyorum , bunun amacı client tarafına tüm veriyi bi anda yollamak yerine belli dilimlerle göndererek client tarafının çökmesini engellemek. Ancak bu verileri sayfa sayfa gönderirken bir yandanda sıralı göndermeliyim. Gönderdiğim veri json formatında ve dizi barındırıyor. Ör:
Bu sıralamayı ise bu verinin içinde bulunan identifier alanının belli bir dizide geçip geçmediğine göre yapmak istiyorum. Bu dizinin içinde identifier stringi mevcut ise objeyi dizinin başına almak istiyorum. Ancak bunu yapmaya çalıştığımda sadece o anki gönderdiğim sayfadaki veri sıralanıyor , bir sonraki sayfaya göre sıralanmıyor mesela. Sayfalayarak gönderdiğim verileri tüm verilere göre sıralamayı nasıl başarabilirim ? |
Spring Boot ile Veri sayfalama ve Sıralama Problemi
-
-
Client nedir, (tarayıcı, mobil / masaüstü app?) ve sıralamayı client tarafında mı sunucuda mı yapmaya calışıyorsun? Sonuçta Spring Boot'a özel bir problem olarak görünmüyor. -
Clientımız web tarayıcı. Hocam frontend tarafında yapılıyor fakat backend tarafında yapılması gerektiğinin farkına vardım. Ancak henüz nasıl bir yol izlemeliyim bilmiyorum.
-
https://www.baeldung.com/spring-data-jpa-pagination-sorting
Sanırım aradığın şey bu. Yazdıklarından bu anlamı çıkardım. Sorununu çözmüyorsa kodları ve tam olarak backendden beklediğin responsu yazarsan daha kolay yardımcı olabilirim.
-
Crud ya da Reactive crud repository interface ini incelemelisin. Her turlu sort edebilirsin. Pagination sort edilmis dataya yapilir, zaten DB yapiyor.
Page collection alir, request icinde Pageable verirsin. -
Stream Api kullanacaksın dostum. Fonksiyonel olarak istediğini yapabilirsin, custom bir şekilde istediğin caseleri yürütebilirsin. -
merhaba,
spring boot kullandiginiza gore repository icin spring-data implementasyonlarindan birisini kullandiginizi varsayiyorum, sorunuz spring-data sorusu.
Spring pagination sort destekliyor fakat sort islemini belirli bir kolonun degerine gore yapabilirsiniz
Alıntı
metni:Pageable pageable = PageRequest.of(0, 5, Sort.by("columnName")); sizin yapmak istediginiz sey ise once condition ( identifier bulunsun ) ardindan siralama. Eger condition koyarsaniz zaten identifier olmayan elemanlar elinize gecmeyecek.
Ihtiyaciniz, yapmak istedigniz sey nedir tam olarak anlayamadim ama "bir deger var ise ona gore sirala" makul bir cozum degil gibi gozukuyor. Madem identifier'a gore siralamak istiyorsunuz, bu degere sahip olmayan verileri neden islemeye calisiyorsunuz?
Bu mesaj IP'si ile atılan mesajları ara Bu kullanıcının son IP'si ile atılan mesajları ara Bu mesaj IP'si ile kullanıcı ara Bu kullanıcının son IP'si ile kullanıcı ara
KAPAT X