Hibernate Criteria查询总结:使用与实战
需积分: 9 177 浏览量
更新于2024-07-29
收藏 107KB DOC 举报
"这篇文章除了介绍Hibernate的Criteria用法外,还涉及了DetachedCriteria、Criterion和Projection等核心概念。作者强调了Criteria在实际项目中的灵活性,并对比了在线Criteria与离线DetachedCriteria的区别。同时,文章还提到了FetchMode、FlushMode和LockMode的设置以及Criterion的实现方式,尤其是通过Restrictions工具类创建查询条件的方法。"
在Java的持久化框架Hibernate中,Criteria API提供了一种动态构建SQL查询的方式,这使得开发者能够更加灵活地构建复杂的查询条件,而无需直接编写SQL语句。Criteria API的设计理念是面向对象,使得查询操作更加符合OO编程的思维。
Criteria是CriteriaSpecification接口的一个实现,它可以直接在HibernateSession上下文中创建并执行查询。这种在线的Criteria可以在当前Session中直接使用,允许开发者实时地构建和执行查询。相反,DetachedCriteria则是独立于Session的,可以在任何地方创建,然后在需要的时候与Session结合执行。DetachedCriteria通过`forClass`或`forEntityName`方法初始化,这在设计时就提供了更多的灵活性,比如在服务层预定义查询条件。
为了指定查询条件,Criteria API使用了Criterion接口。Criterion代表了一个查询条件,可以是简单的比较(如eq、ne、gt、lt等),也可以是逻辑组合(如conjunction和disjunction,对应AND和OR操作)。Restrictions工具类是创建Criterion实例的主要途径,它提供了大量静态方法来构建各种比较条件。
Projection接口则用于定义查询结果的投影,即查询返回的列。它可以是属性、函数、算术表达式,甚至整个实体对象。通过设置Projection,你可以控制查询返回的结果集形式。
此外,Criteria API还允许设置FetchMode来控制关联对象的加载策略,选择一次性加载(EAGER)还是延迟加载(LAZY)。FlushModel定义了Session何时应该被刷新,通常有NEVER、ALWAYS和AUTO几种模式。LockMode则用于控制数据库行级锁定,防止并发问题,有NONE、READ和WRITE等模式。
Hibernate的Criteria API提供了一套强大的查询机制,能够帮助开发者构建复杂的查询条件,同时保持代码的清晰性和可维护性。通过熟悉和熟练使用Criteria、DetachedCriteria、Criterion和Projection,可以显著提高开发效率和应用性能。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2022-06-19 上传
2012-06-13 上传
2018-04-17 上传
2008-08-20 上传
2010-01-14 上传
chinafjfzlj
- 粉丝: 5
- 资源: 163
最新资源
- The Next 700 Programming Languages
- 2009年上半年信息系统监理师上午题。
- 2009年上半年信息处理技术员上午题
- AT&T asm guide for newbie
- DSP开发板电路原理图之主图
- 管理软件的实施与销售
- The estimation of synergy or antagonism
- Measuring additive interaction using odds ratios
- 数据库课程设计126个经典题
- 【启动项目就是开机的时候系统会在前台或者后台运行的程序】
- 云母填充改性聚乙烯的初步研究
- 某高校学生学籍管理信息系统设计与开发
- 编程相关日语词汇(PDF格式)
- Ubuntu中文参考手册
- 计算机网络 第四版 习题答案 谢希仁
- J2ME手机游戏开发技术详解