使用Hibernate Criteria实现in子查询和exists子查询
来源:互联网 发布:qq电脑管家网络加速器 编辑:程序博客网 时间:2024/05/18 00:44
使用Criteria实现以下SQL语句的效果(in):
select * from BK_ProjectCard this_ where this_.resCompanyId in ( select this_.id as y0_ from SYSTEM_DEPARTMENT_INFO this_ )
实现代码:
Criteria criteria = this.getSessionFactory().getCurrentSession().createCriteria(ProjectCard.class);DetachedCriteria inCriteria = DetachedCriteria.forClass(DepartmentInfo.class);inCriteria.setProjection(Property.forName("id"));criteria.add(Property.forName("resCompanyId").in(inCriteria));List<ProjectCard> projectCards = criteria.list();
使用Criteria实现以下SQL语句的效果(exists):
select * from BK_ProjectCard pc where exists in(select this_.id as y0_ from SYSTEM_DEPARTMENT_INFO this_ where this_.id = pc.resCompanyId)
Criteria criteria = this.getSessionFactory().getCurrentSession().createCriteria(ProjectCard.class, "pc");DetachedCriteria existsCriteria = DetachedCriteria.forClass(DepartmentInfo.class, "sdi");existsCriteria.add(Property.forName("sdi.id").eqProperty(Property.forName("pc.resCompanyId")));existsCriteria.add(Restrictions.like("name", "%test%"));criteria.add(Subqueries.exists(existsCriteria.setProjection(Projections.property("sdi.id"))));List<ProjectCard> projectCards = criteria.list();
PS:实体类中并没有建立两个对象的关联关系,仅在ProjectCard对象中创建了一个resCompanyId的属性,用于存储DepartmentInfo表的ID。
0 0
- 使用Hibernate Criteria实现in子查询和exists子查询
- hibernate查询之Criteria实现子查询(GROOVY语法)
- mysql之exists子查询和in查询的对比
- 子查询(exists子查询)
- 子查询里面有树形查询,子查询选择使用in/exists需要特别留意
- MySQL 子查询 EXISTS 和 NOT EXISTS
- SQL 子查询 EXISTS 和 NOT EXISTS
- hibernate criteria where exists查询
- Hibernate使用Criteria实现查询
- in子查询、exists子查询、连接,效率的探讨
- in子查询、exists子查询、连接,效率的探讨
- mysql 子查询in与exists互换
- IN&EXISTS 与 NOT IN&NOT EXISTS 子查询 区别
- 理解exists子查询
- MSSQL EXISTS子查询
- MySQL 子查询-exists
- EXISTS子查询
- Atitit.Hibernate中Criteria 使用总结and 关联查询 and 按照子对象查询 o9o
- sqlbulkcopy 批量更新 数据库
- java selenium (二) 环境搭建方法一
- spring boot中关于redis 保存数据的序列化(数据库中的乱码问题)
- Qt 应用获取本机设备IP
- 【脚本语言系列】关于Python数值计算Pandas,你需要知道的事
- 使用Hibernate Criteria实现in子查询和exists子查询
- Hessian解析及应用(整合Spring)
- css3深入理解之border-radius
- java selenium (三) 环境搭建 基于Maven
- 时间复杂度:O(1)、O(n)、O(n²)、O(nlogn)等是什么意思,白话文解释专业术语。
- hive安装
- Android图片轮播控件ConvenientBanner的简单使用
- 从零开始学Makefile(四)
- JS三元运算符