我有一個 UUID 串列,它被饋送到存盤庫中的方法引數中。我需要回傳一個 Map<UUID, Boolean> 映射,它將復制鍵中串列中的所有值。如果 list 中的值存在于 entity.get Service Id() 中,則 map 的值設定為 true,否則為 false。怎么做?
uj5u.com熱心網友回復:
如果您使用的是 spring-data-jpa 那么您可以使用@Query 注釋
如果不立即進行更復雜的查詢,我建議只查詢結果為真的值,然后根據該結果構建地圖。
@Query("select ?1 from YourEntityHere yeh where yeh.id = ?1")
List<Uuid> findServiceUuids(List<UUID> uuids);
然后在呼叫層:
private Map<UUID, Boolean> getMapUuidAndFoundStatus(List<UUID> uuids) {
List<UUID> foundUuids = repository.findServiceUuids(uuids);
return uuids.stream().collect(Collectors.toMap(Function.identity(), foundUuids::contains));
}
有一種方法可以在沒有訪問層的情況下在一個查詢中完成,但它很可能會降低可讀性、性能和可重用性。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/534291.html
標籤:爪哇冬眠jp存储库
上一篇:有沒有一種方法可以使用Hibernate中的IdentifierGenerator管理自定義生成的ID,以服務于多個具有不同前綴的物體?
