`
ch_space
  • 浏览: 111722 次
  • 性别: Icon_minigender_1
  • 来自: 农村进城务工人员
社区版块
存档分类
最新评论

HIberbnate学习笔记4--动态查询Criteria接口

阅读更多
Criteria接口天生就是为动态查询而设计的,当然Query接口也可以实现,但比较繁杂。

简单例子:
public List<User> getUserByCond(Map<String, String> cond) {
		Session session=SessionFactory.getSession();
		Criteria ct=session.createCriteria(User.class);
		Iterator<Map.Entry<String,String>> iter=cond.entrySet().iterator();
		while(iter.hasNext()){
			Map.Entry<String,String> kv=iter.next();
			//按用户名检索
			if("username".equals(kv.getKey())){
				ct.add(Restrictions.like("username", kv.getValue(), MatchMode.ANYWHERE));//添加约束
			}
			//按email检索
			if("email".equals(kv.getKey())){
				ct.add(Restrictions.eq("email", kv.getValue()));
			}
			
		}
		List<User> users=ct.list();
		session.close();
		return users;
	}


排序
ct.add(Order.desc("property_name"))


统计记录行数
ct.setProjection(Projections.rowCount());//投影


“or”查询
/*两个or条件*/
ct.add(Restrictions.or(Restrictions.eq("email", email()),Restrictions.eq("username", username));

/*三个以上or条件,使用Restrictions.disjonction()*/
Property age=Property.forName("age");
criteria.add(Restrictions.disjonction()
.add(age.eq(10))
.add(age.eq(20))
.add(age.eq(30))
).add(Restrictions.eq("name","chen"));

相当于 where (age=1 or age=20 or age=30) and name="chen"


or可以嵌套多次。

这里投影可以使用Projections工厂设置,查询准则可以使用Restrictions工厂设置,排序使用Order工厂设置
分享到:
评论

相关推荐

    Hibernate-Criteria_模糊查询

    Criteria API基于面向对象的方式进行查询构建,可以动态地添加各种查询条件,包括等值比较、范围查询、模糊查询等,使得查询操作更加直观和易于管理。 ### 模糊查询的意义 模糊查询是数据库操作中常见的一种需求,...

    ExtremeLearningMachine资源共享-New-delay-dependent-stability-criteria-for-uncertain-stochastic_2013_Neuroco.pdf

    ExtremeLearningMachine资源共享-New-delay-dependent-stability-criteria-for-uncertain-stochastic_2013_Neuroco.pdf 小弟准备学习ELM,才收集到一些相关资料,发现论坛中并无相关资料,因此把自己手头上收集到...

    JPA 动态查询 Criteria JPQL 语法详解

    JPA 动态查询 Criteria JPQL 语法详解 JPA(Java Persistence API)是一种Java应用程序接口,用于访问、管理和持久化数据。JPA 2.0 引入了 Criteria API,它提供了一种动态查询机制,允许开发者在运行时构建查询...

    Hibernate-Criteria 模糊查询

    4. **原生SQL**:虽然`Criteria`主要基于对象模型进行查询,但Hibernate也允许你执行原生SQL查询,这在某些特定场景下非常有用。 ```java criteria.add(Expression.sql("lower({alias}.name) like lower(?)", ...

    UN - Manual of Tests and Criteria:2019(Rev7) - 最新英文电子版(536页).pdf

    UN - Manual of Tests and Criteria:2019(Rev7) - 最新英文电子版(536页).pdf

    hibernate学习笔记-01helloword

    【标题】"hibernate学习笔记-01helloworld"主要涵盖了Hibernate框架的基础入门知识,是初学者了解和掌握Hibernate的重要起点。Hibernate是一款强大的Java对象关系映射(ORM)框架,它简化了数据库操作,使得开发者...

    Criteria连表查询

    Hibernate中的Criteria连表查询,包括单表属性查询,多表内连,以及左外连接查询

    Hibernate学习笔记(1-13)

    - Criteria API:另一种查询方式,提供了一种动态构建查询的接口,更适合于运行时构建查询。 4. **关联映射**: - Hibernate支持一对多、一对一、多对一、多对多等各种关联关系的映射,通过hbm.xml文件配置。 5....

    -CES4-JPQL-y-Criteria-API:带有使用 JPQL 和 Criteria API 的控制器示例的项目

    -CES4-JPQL-y-Criteria-API 带有使用 JPQL 和 Criteria API 的控制器示例的项目 示例可以在类 co.edu.polijic.proyectoexamplejpql.controllers.CustomerJpaController 和 co.edu.polijic.proyectoexamplejpql....

    Criteria标准化对象查询小例子

    在Java世界中,Criteria API是JPA(Java Persistence API)的一部分,用于构建动态、类型安全的查询。这个“Criteria标准化对象查询小例子”提供了一个实际应用Criteria API的示例,帮助开发者理解如何利用它来执行...

    前端开源库-waterline-criteria

    5. **动态查询**:允许根据运行时的条件动态构建查询,增强了灵活性。 ### 使用水线标准的实际应用 在键/值数据库中,数据结构通常较为简单,但waterline-criteria可以帮助开发者轻松处理这些数据。例如,使用水线...

    hibernate笔记--云图智联

    Hibernate提供了Criteria API,可以在代码中创建查询条件,进行复杂的查询操作,包括条件查询、范围查询、模糊查询等。 ###Mybatis概述 Mybatis是一个持久层框架,它提供对象映射文件,将SQL语句和Java对象映射在...

    hibernate框架开发2016版视频 四天学习笔记完整版

    【hibernate框架开发2016版视频 四天学习笔记完整版】 在软件开发领域,特别是Java Web开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它极大地简化了数据库操作,使开发者可以更专注于业务逻辑而不是...

    hibernateCriteria查询

    `org.hibernate.Criteria` 接口代表了针对某个特定持久化类的查询。在Hibernate中,可以通过`Session` 对象的 `createCriteria()` 方法来创建一个`Criteria` 实例,即查询器。查询条件是通过`org.hibernate....

    我的hibernate学习笔记(4)完 ---附完整word格式文件

    在本篇“我的Hibernate学习笔记(4)完”中,我们将深入探讨Hibernate这一流行的Java对象关系映射(ORM)框架,以及如何通过源码和工具进行高效开发。这篇笔记不仅包含理论知识,还提供了实际操作的指导,以帮助读者更...

    Distance-constrained resource-sharing criteria for device-to-device communications underlaying cellular networks

    Distance-constrained resource-sharing criteria for device-to-device communications underlaying cellular networks

    exemplo-jpa-pesquisa-com-jpql-criteria:例子

    Java项目旨在提供使用JPQL查询和Criteria API的示例。 资料建模 例子: 与mappedBy联接:两个类之间的双向关系映射 延迟加载 延迟加载 FetchType EAGER 加入获取 上篮 使用SUM和AVG函数进行查询 数据访问对象(DAO...

    Hibernate 4 学习笔记

    **标题:** Hibernate 4 学习笔记 **概述:** Hibernate 4 是一个流行的Java对象关系映射(ORM)框架,它允许开发人员在Java应用中处理数据库操作,而无需直接编写SQL语句。这个学习笔记将深入探讨Hibernate 4的核心...

Global site tag (gtag.js) - Google Analytics