我正在嘗試構建一個規范,該規范將 Set UUID fooIds 和 long oldThanInMillis 作為輸入。
我的方法應該回傳一個結果串列。結果有一個 fooId 作為欄位(不是 id)。在表中,可能有許多具有相同 fooId 的物件。但是我希望每個 fooId 只得到 1 個結果。
我目前的規格是這樣的:
private Specification<Result> buildSpec(Set<UUID> fooIds, long olderThanMilis)
{
Specification<Result> idSpec = (root, query, builder) -> builder.or(builder.in(root.get("fooId")).value(clientPoses));
Specification<Result> olderThanSpec = (root, query, builder) -> builder.lessThanOrEqualTo(root.get("created"), olderThanMilis);
return idSpec.and(olderThanSpec);
}
我試圖在我擁有的東西之上打包一些東西,但似乎沒有任何效果。可能的解決方法當然不是從 DB 加載一個串列,而是每個 fooId 和 oldThanMillis 一個一個加載它,限制為 1 ......如果一個一個加載它,這是否是一種不好的做法?請問有什么建議嗎?謝謝...
uj5u.com熱心網友回復:
通常,這是通過按獨特的東西排序和 using 來處理的setMaxResults(1),但我不知道 Spring Data 如何支持這一點。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/318578.html
