簡體   English   中英

springboot條件查詢,對一對多關系進行join操作?

[英]Springboot criteria query, performing join operation on one-to-many relationship?

我們有兩張桌子。 第一個事務和另一個具有一對多關系的事務狀態,因為在一個事務中可以有多個狀態,如跨不同時間線的“待處理”、“失敗”、“已完成”。

所以我想創建一個條件查詢 api,它將獲取所有狀態為“待定”的交易,並且該狀態是最新的,即它不應該獲取具有 2 個狀態的交易讓我們說待定然后完成,但只獲取最新狀態為“待定”的那些。

交易表具有以下字段:id、credId、debtId、金額、費用等 + .netomany 狀態關系。 交易狀態已歸檔:id、transactionId、status、created。

注意:我加入了兩個基於交易 ID 的表格。

我試過使用普通的 JPA 查詢,但是當我們切換到條件查詢時,我們希望使一切都動態化。

最后,我自己解決了。 下面的代碼應該自我解釋。

子查詢 subquery = cq.subquery(Long.class); 根 subRoot = subquery.from(TransactionStatus.class);

        subquery.select(cb.max(subRoot.get("id")));
        subquery.groupBy(subRoot.get("TransactionId"));
        subquery.where(cb.equal(subRoot.get("TransactionId"), requests.get("id")));

        Join<Transaction, TransactionStatus> joinCourse = requests.join("statuses", JoinType.INNER);
        predicates.add(cb.equal(joinCourse.get("id"), (subquery)));
        predicates.add(cb.equal(joinCourse.get("status"), requestsPayload.getStatus()));

暫無
暫無

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

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