簡體   English   中英

如何使用謂詞通過JpaRepository.findAll獲得對象的不同列表?

[英]How do I get a distinct list of objects with JpaRepository.findAll using a Predicate?

我有類似的東西:

Predicate p = ...;
List<MyObject> objectList = (List<MyObject>) myRepository.findAll(p); // myRepository is autowired

這將獲取所有MyObjects的列表,其中包含重復項。 是否可以獲取DISTINCT列表?

我真的需要使用EntityManager和CriteriaBuilder嗎? 還是可以僅使用謂詞和存儲庫對象來完成?

我不是在談論手動遍歷列表,刪除重復項或使用任何Collections API,而是談論JPA或QueryDSL API。

是的,有可能。以下是我能想到的簡單步驟

  • 在MyObject類中實現hashCode()和equals()。

  • 根據上面的列表直接使用其構造函數創建一個Set,該構造函數將Collection作為參數。

暫無
暫無

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM