簡體   English   中英

如何在 Spring 引導中對 List<> 中的月份進行排序 - 使用 Java 8

[英]How to sort months in List<> in Spring boot - Using Java 8

我有月份列表,我在 POJO class 中設置,在設置時,訂單沒有排序。 我想整理一下。 樣本數據看起來像 -

我的 POJO Class -

public class SamplePojo {
   private static final long serialVersionUID = 1L;
   private String type;
   private String name;
   private Integer January;
   private Integer February;
   private Integer March;
   private Integer April;
   private Integer May;
   private Integer June;
}

ServiceImpl -

List<SamplePojo> sp = new ArrayList<SamplePojo>();
SamplePojo tp1 = new SamplePojo ();
        
        tp1.type("type");
        tp1.name("name");
        tp1.setJanuary(12);
        tp1.setFebruary(2);
        tp1.setMarch(33);
        tp1.setApril(0);
        tp1.setMay(0);
        tp1.setJune(0);
        tp1.setTotal(122);
        sp.add(tp1);

未排序的數據 -

[
    {
        "type": "LLB",
        "name": "Working",
        "total": 0,
        "march": 33,
        "april": 0,
        "may": 0,
        "june": 0,
        "february": 2,
        "january": 12
    },
    {
        "type": "Engineer",
        "name": "Not Working",
        "total": 0,
        "march": 33,
        "april": 0,
        "may": 0,
        "june": 0,
        "february": 2,
        "january": 12
    }
]

想要排序 -

[
    {
        "type": "LLB",
        "name": "Working",
        "january": 11,
        "february": 2,
        "march": 3,
        "april": 3,
        "may": 0,
        "june": 0,
        "total": 0
    },
    {
        "type": "Engineer",
        "name": "Not Working",
        "january": 12,
        "february": 2,
        "march": 33,
        "april": 0,
        "may": 0,
        "june": 0,
        "total": 0
    }
]

如何使用 Spring 啟動來做到這一點。 我是這個 Spring 啟動的新手,也是這個 stackoverflow 的新手。 你能幫幫我嗎?

如果要對 JSON 有效載荷進行排序,可以使用@JsonPropertyOrder注解

@JsonPropertyOrder({
  "type",
  "name",
  "January",
  "February",
  "March"
})
public class SamplePojo {
  private static final long serialVersionUID = 1 L;
  private String type;
  private String name;
  private Integer January;
  private Integer February;
  private Integer March;
  private Integer April;
  private Integer May;
  private Integer June;
}

最好的方法是使用Spring Data Repository 查詢關鍵字從存儲庫中排序,通過以下代碼查找所有SampleEntity

@Repository
public interface SampleEntityRepository extends JpaRepository<SampleEntity, Long> {
    List<SampleEntity> findAllByOrderByJanuaryAsc();
}

但是,如果您想在最后一層排序以顯示List of SamplePojo您可以使用stream並按某些標准sorted

List<SamplePojo> lastList = sampleService.findAll();
lastList
    .stream()
    .sorted((sPojo1, sPojo2) -> sPojo1.getJanuary().compareTo(sPojo2.getJanuary()));

如何緩存列表<object>在 Java 中,使用 Spring 引導提供的緩存技術,列表中的元素每個都被緩存為單個條目?<div id="text_translate"><pre> @Query(value = "select student_rid as row_id, student_name as Name from student_data where student_rid=:Student and visibility=true)", nativeQuery = true) public List&lt;Map&lt;String, String&gt;&gt; findNameAndRowID(@Param("Student") Long Student);</pre><p> 我想緩存列表 output,但是當我嘗試緩存 output 時,整個列表被緩存為單個緩存條目,因此,當我要么甚至將一條記錄插入/刪除到數據庫中,這不是我想要的,因為它不符合緩存的目的。 那么有沒有一種方法可以將列表元素緩存為單個條目,這樣我只能在任何插入/刪除語句中逐出/更新單個記錄。</p><p> 我正在使用 Spring 啟動、Java 8 和 Spring 工具套件作為 Z581D6381F3F35E4F36D4F772。</p></div></object>

[英]How to cache a List<Object> in Java such that the elements in list are cached as a single entry each, using Spring Boot provided caching techniques?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

相關問題 如何按 Java Spring Boot 中的字段對列表進行排序? 如何對包含年份的月份列表進行排序 在后端(java spring boot)排序中,如何使用pageable對別名進行排序? 沒有父表作為前綴 如何獲得 java spring 引導中未列出的結果 Spring 引導 - 使用 Java 將 email 發送給多個接收者列表不起作用 Java:如何使用 foreach 對列表進行排序? 如何在java 8中使用reduce對列表進行排序? Java Spring-boot:如何返回列表而不是單個結果? 如何緩存列表<object>在 Java 中,使用 Spring 引導提供的緩存技術,列表中的元素每個都被緩存為單個條目?<div id="text_translate"><pre> @Query(value = "select student_rid as row_id, student_name as Name from student_data where student_rid=:Student and visibility=true)", nativeQuery = true) public List&lt;Map&lt;String, String&gt;&gt; findNameAndRowID(@Param("Student") Long Student);</pre><p> 我想緩存列表 output,但是當我嘗試緩存 output 時,整個列表被緩存為單個緩存條目,因此,當我要么甚至將一條記錄插入/刪除到數據庫中,這不是我想要的,因為它不符合緩存的目的。 那么有沒有一種方法可以將列表元素緩存為單個條目,這樣我只能在任何插入/刪除語句中逐出/更新單個記錄。</p><p> 我正在使用 Spring 啟動、Java 8 和 Spring 工具套件作為 Z581D6381F3F35E4F36D4F772。</p></div></object> 在 Java Spring Boot 中將列表轉換為分組列表
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM