欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JPA?CriteriaBuilder子查詢方式

 更新時間:2021年12月07日 11:17:29   作者:Liyang120621  
這篇文章主要介紹了JPA?CriteriaBuilder子查詢方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

JPA CriteriaBuilder子查詢

給自己做個備忘

/** 檢索關鍵字 */
if (keyWord != null && !keyWord.trim().equals(""))
{
    // 創(chuàng)建子查詢對象
 Subquery<Store> subquery = criteriaQuery.subquery(Store.class);
 Root<Store> root2 = subquery.from(Store.class);
 subquery.select(root2.<Store> get("id"));
 subquery.where(criteriaBuilder.like(root2.<String> get("name"), "%" + keyWord + "%"));
 
 // 給讀者稍微解釋一下,也給自己留個記憶
    // 這里的意圖是將關鍵做兩個模糊檢索,一個是在本表中檢索title字段
    // 就是criteriaBuilder.like(root.<String> get("title"), "%" + keyWord + "%")
    // 二是將字段與子表中的檢索出來的id與本表中store字段做匹配
    // criteriaBuilder.in(root.get("store")).value(subquery))
    // 至于id怎么檢索出來的,用子查詢模糊檢索出來的,參照上面的子查詢 
 restrictions = criteriaBuilder.and(restrictions,criteriaBuilder.or(criteriaBuilder.like(root.<String> get("title"), "%" + keyWord + "%"),criteriaBuilder.in(root.get("store")).value(subquery)));
}

Jpa 在CriteriaBuilder中添加where條件NotIn子查詢

final CriteriaBuilder cb = entityManager.getCriteriaBuilder();
final CriteriaQuery<Person> cq = cb.createQuery(Person.class);
final Root<Person> root = cq.from(Person.class);
cq.select(root);
final Subquery<Integer> subquery = cq.subquery(Integer.class);
final Root<Person> validityIDSQ = subquery.from(Person.class);
subquery.select(cb.max(validityIDSQ.get(Person_.validityID)));
subquery.groupBy(validityIDSQ.get(Person_.personID));
cq.where(cb.in(root.get(Person_.validityID)).value(subquery));
// 將生成
select
    person0_.id as id1_0_,
    person0_.personID as personID2_0_,
    person0_.validityID as validity3_0_,
    person0_.value as value4_0_
from
    person person0_
where
    person0_.validityID in (
            select
                max(person1_.validityID)
            from
                person person1_
            group by
                person1_.personID)

自身所需NotIn語法,所以是

Subquery<String> manageUserSubquery = query.subquery(String.class);
    Root<RelationUserManagePlateDomain> relationUserManagePlateDomainRoot = manageUserSubquery.from(RelationUserManagePlateDomain.class);
    Join<RelationUserManagePlateDomain, UserDomain> relationUserManagePlateDomainUserDomainJoin = relationUserManagePlateDomainRoot.join(RelationUserManagePlateDomain_.user, JoinType.INNER);
    Subquery<String> subquery = manageUserSubquery.select(relationUserManagePlateDomainUserDomainJoin.get(UserDomain_.id));
    Predicate predicate1 = criteriaBuilder.and(criteriaBuilder.not(criteriaBuilder.in(root.get(UserDomain_.id)).value(manageUserSubquery)));
    predicate.getExpressions().add(predicate1);

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Java面試題沖刺第二天--Redis篇

    Java面試題沖刺第二天--Redis篇

    這篇文章主要為大家分享了最有價值的三道java面試題,涵蓋內(nèi)容全面,包括數(shù)據(jù)結構和算法相關的題目、經(jīng)典面試編程題等,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Spring中的SpringData詳細說明

    Spring中的SpringData詳細說明

    這篇文章主要介紹了Spring中的SpringData詳細說明,Spring Data 是Spring 的一個子項目, 旨在統(tǒng)一和簡化對各類型持久化存儲, 而不拘泥于是關系型數(shù)據(jù)庫還是NoSQL 數(shù)據(jù)存儲,需要的朋友可以參考下
    2023-11-11
  • SpringBoot+JWT實現(xiàn)注冊、登錄、狀態(tài)續(xù)簽流程分析

    SpringBoot+JWT實現(xiàn)注冊、登錄、狀態(tài)續(xù)簽流程分析

    這篇文章主要介紹了SpringBoot+JWT實現(xiàn)注冊、登錄、狀態(tài)續(xù)簽【登錄保持】,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • 解決Maven依賴沖突的方法

    解決Maven依賴沖突的方法

    本文主要介紹了解決Maven依賴沖突的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-05-05
  • java多線程之停止線程的方法實例代碼詳解

    java多線程之停止線程的方法實例代碼詳解

    這篇文章主要介紹了java多線程之停止線程的方法實例代碼詳解,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05
  • Java類的加載時機

    Java類的加載時機

    這篇文章介紹了Java類的加載時機,文中通過示例代碼介紹的非常詳細。對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-12-12
  • springBoot Junit測試用例出現(xiàn)@Autowired不生效的解決

    springBoot Junit測試用例出現(xiàn)@Autowired不生效的解決

    這篇文章主要介紹了springBoot Junit測試用例出現(xiàn)@Autowired不生效的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 使用Java的方式模擬Flutter的Widget實現(xiàn)多層括號嵌套

    使用Java的方式模擬Flutter的Widget實現(xiàn)多層括號嵌套

    這篇文章主要介紹了使用Java的方式模擬Flutter的Widget的實現(xiàn)多層括號嵌套問題,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-07-07
  • SpringBoot中webSocket實現(xiàn)即時聊天

    SpringBoot中webSocket實現(xiàn)即時聊天

    這篇文章主要介紹了SpringBoot中webSocket實現(xiàn)即時聊天,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • springboot統(tǒng)一異常處理(返回json)并格式化異常

    springboot統(tǒng)一異常處理(返回json)并格式化異常

    這篇文章主要介紹了springboot統(tǒng)一異常處理(返回json)并格式化異常,對spring boot的默認異常處理方式進行修改,要統(tǒng)一返回數(shù)據(jù)格式,優(yōu)雅的數(shù)據(jù)交互,優(yōu)雅的開發(fā)應用,需要的朋友可以參考下
    2023-07-07

最新評論