JPA CriteriaBuilder子查询方式是什么
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,本篇内容主要讲解"JPA CriteriaBuilder子查询方式是什么",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"JPA CriteriaBuilde
千家信息网最后更新 2026年11月04日JPA CriteriaBuilder子查询方式是什么
本篇内容主要讲解"JPA CriteriaBuilder子查询方式是什么",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"JPA CriteriaBuilder子查询方式是什么"吧!
JPA CriteriaBuilder子查询
给自己做个备忘
/** 检索关键字 */if (keyWord != null && !keyWord.trim().equals("")){ // 创建子查询对象 Subquery subquery = criteriaQuery.subquery(Store.class); Root root2 = subquery.from(Store.class); subquery.select(root2. get("id")); subquery.where(criteriaBuilder.like(root2. get("name"), "%" + keyWord + "%")); // 给读者稍微解释一下,也给自己留个记忆 // 这里的意图是将关键做两个模糊检索,一个是在本表中检索title字段 // 就是criteriaBuilder.like(root. get("title"), "%" + keyWord + "%") // 二是将字段与子表中的检索出来的id与本表中store字段做匹配 // criteriaBuilder.in(root.get("store")).value(subquery)) // 至于id怎么检索出来的,用子查询模糊检索出来的,参照上面的子查询 restrictions = criteriaBuilder.and(restrictions,criteriaBuilder.or(criteriaBuilder.like(root. get("title"), "%" + keyWord + "%"),criteriaBuilder.in(root.get("store")).value(subquery)));} Jpa在CriteriaBuilder中添加where条件NotIn子查询
final CriteriaBuilder cb = entityManager.getCriteriaBuilder();final CriteriaQuerycq = cb.createQuery(Person.class);final Root root = cq.from(Person.class);cq.select(root);final Subquery subquery = cq.subquery(Integer.class);final Root 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语法,所以是
SubquerymanageUserSubquery = query.subquery(String.class); Root relationUserManagePlateDomainRoot = manageUserSubquery.from(RelationUserManagePlateDomain.class); Join relationUserManagePlateDomainUserDomainJoin = relationUserManagePlateDomainRoot.join(RelationUserManagePlateDomain_.user, JoinType.INNER); Subquery 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);
到此,相信大家对"JPA CriteriaBuilder子查询方式是什么"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
查询
检索
方式
字段
关键
内容
学习
实用
更深
两个
关键字
兴趣
实用性
实际
对象
就是
意图
操作简单
方法
是在
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技公司
中智农互联网科技
互联网新科技
上海卓越科技互联网
互联网科技行业发展
合肥互联网科技公司
奇酷互联网络科技
九亚互联网科技
互联网科技缩写
互联网科技上市公司
互联网科技英文翻译
互联网科技公司做什么
互联网巨头投资的硬核科技
移动互联网科技公司
互联网科技与大数据专业
华夏恒生互联网科技013171
明优互联网科技有限公司
互联网相关科技技术
有人说阿里系是互联网科技企业
上海同邻互联网科技有限公司规模
互联网的科技
关于新基建和互联网科技
杭州互联网科技公司
沃里互联网科技
互联网科技小额贷款
银川新华互联网科技职业技术培训学校图片
每天都有哪些好的互联网科技
深圳互联网科技的发展
安徽零酒互联网科技有限公司
华人运通互联网科技公司