Hibernate Criteria与DetachedCriteria详解
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
"这篇文档详细介绍了Hibernate中的Criteria查询机制,包括Criteria、DetachedCriteria、Criterion和Projection的概念与用法,是深入理解Hibernate动态查询的重要参考资料。" 在Java开发中,Hibernate是一个广泛使用的对象关系映射(ORM)框架,它允许开发者以面向对象的方式来操作数据库。在Hibernate中,Criteria API提供了一种动态构建SQL查询的方法,不需要直接编写SQL语句,使得代码更加可读和可维护。以下是关于Criteria查询机制的详细介绍: 1. Criteria Criteria接口是Hibernate提供的一个核心API,用于构建动态查询。通过Criteria,我们可以设置各种查询条件、排序方式、分页等,然后让Hibernate自动生成对应的SQL语句。Criteria查询是在Session上进行的,可以直接在数据库交互过程中使用。 2. DetachedCriteria DetachedCriteria是Criteria的一个扩展,主要区别在于它可以脱离Session进行创建,也就是说,它可以在不直接与数据库交互的情况下构建查询条件。当查询条件准备好后,我们可以在需要的时候将其绑定到Session并执行。这有利于提高程序的灵活性和解耦性,比如在服务层和数据访问层之间传递查询条件。 3. Criteria与DetachedCriteria的区别 - Criteria是在线的,需要与HibernateSession配合使用,即在当前的数据库会话中创建和执行查询。 - DetachedCriteria是离线的,创建时不需要Session,可以在之后的某个时刻与Session关联并执行,适合于分层架构。 4. Criterion和Projection - Criterion代表查询条件,它是Criteria查询的核心部分。例如,我们可以使用Restrictions类提供的静态方法创建各种条件,如eq(等于),ge(大于等于),between(介于)等。还有其他复杂的条件,如Example(基于示例的查询)和Junction(组合条件,包括conjunction(AND)和disjunction(OR))。 - Projection则用于定义查询结果的返回形式,它可以是单个属性,也可以是聚合函数(如COUNT、SUM)或者是投影列表。 使用Criteria和DetachedCriteria,开发者能够方便地构造复杂的查询逻辑,同时避免了硬编码SQL,提高了代码的可读性和可维护性。在Spring框架中,通过getHibernateTemplate().findByCriteria()方法,可以轻松地结合DetachedCriteria执行查询,进一步简化了开发工作。
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/ac8b9680820940e7ac9d0c7be554f725_weixin_44609920.jpg!1)
- 粉丝: 243
- 资源: 1940
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- Hadoop生态系统与MapReduce详解
- MDS系列三相整流桥模块技术规格与特性
- MFC编程:指针与句柄获取全面解析
- LM06:多模4G高速数据模块,支持GSM至TD-LTE
- 使用Gradle与Nexus构建私有仓库
- JAVA编程规范指南:命名规则与文件样式
- EMC VNX5500 存储系统日常维护指南
- 大数据驱动的互联网用户体验深度管理策略
- 改进型Booth算法:32位浮点阵列乘法器的高速设计与算法比较
- H3CNE网络认证重点知识整理
- Linux环境下MongoDB的详细安装教程
- 压缩文法的等价变换与多余规则删除
- BRMS入门指南:JBOSS安装与基础操作详解
- Win7环境下Android开发环境配置全攻略
- SHT10 C语言程序与LCD1602显示实例及精度校准
- 反垃圾邮件技术:现状与前景
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)