- 浏览: 191339 次
- 性别:
- 来自: 深圳
-
文章分类
最新评论
-
fendou311:
...
Hibernate Criteria Queries -
wangjian95:
顶你个肺,你写的太简单了
简单的Hessian demo -
fresty:
http://stackoverflow.com/questi ...
JNI中jstring 和char* 之间的转换方法 -
mysh:
这个不能说明内存映射比较快吧, 只能说明 nio 比 io 快 ...
内存映射文件性能对比测试 -
absolute:
www_JE 写道顶楼主 看了好多就楼主的给力 那可不是
windows下的Android-ndk-r5b 环境搭建
条件查询(Criteria Queries)
具有一个直观的、可扩展的条件查询API是Hibernate的特色。
1. 创建一个Criteria 实例
org.hibernate.Criteria接口表示特定持久类的一个查询。Session是 Criteria实例的工厂。



2. 限制结果集内容
一个单独的查询条件是org.hibernate.criterion.Criterion 接口的一个实例。org.hibernate.criterion.Restrictions类 定义了获得某些内置Criterion类型的工厂方法。




约束可以按逻辑分组。


















Hibernate提供了相当多的内置criterion类型(Restrictions 子类), 但是尤其有用的是可以允许你直接使用SQL。



{alias}占位符应当被替换为被查询实体的列别名。
Property实例是获得一个条件的另外一种途径。你可以通过调用Property.forName() 创建一个Property。












3. 结果集排序
你可以使用org.hibernate.criterion.Order来为查询结果排序。












4. 关联
你可以使用createCriteria()非常容易的在互相关联的实体间建立 约束。






注意第二个 createCriteria()返回一个新的 Criteria实例,该实例引用kittens 集合中的元素。
接下来,替换形态在某些情况下也是很有用的。






(createAlias()并不创建一个新的 Criteria实例。)
Cat实例所保存的之前两次查询所返回的kittens集合是 没有被条件预过滤的。如果你希望只获得符合条件的kittens, 你必须使用returnMaps()。














5. 动态关联抓取
你可以使用setFetchMode()在运行时定义动态关联抓取的语义。





这个查询可以通过外连接抓取mate和kittens。
6. 查询示例
org.hibernate.criterion.Example类允许你通过一个给定实例 构建一个条件查询。







版本属性、标识符和关联被忽略。默认情况下值为null的属性将被排除。
你可以自行调整Example使之更实用。









你甚至可以使用examples在关联对象上放置条件。






7. 投影(Projections)、聚合(aggregation)和分组(grouping)
org.hibernate.criterion.Projections是 Projection 的实例工厂。我们通过调用 setProjection()应用投影到一个查询。













在一个条件查询中没有必要显式的使用 "group by" 。某些投影类型就是被定义为 分组投影,他们也出现在SQL的group by子句中。
你可以选择把一个别名指派给一个投影,这样可以使投影值被约束或排序所引用。下面是两种不同的实现方式:









alias()和as()方法简便的将一个投影实例包装到另外一个 别名的Projection实例中。简而言之,当你添加一个投影到一个投影列表中时 你可以为它指定一个别名:





















你也可以使用Property.forName()来表示投影:
















8. 离线(detached)查询和子查询
DetachedCriteria类使你在一个session范围之外创建一个查询,并且可以使用任意的 Session来执行它。


发表评论
-
从一个字节数组里面读4个字节并转换为整型数字
2011-09-30 10:39 1699int syn = 0; byte[] data = ... -
java nio demo
2011-09-27 10:16 2155server public class Rec ... -
JAXB小例子
2011-05-11 15:52 3927package jaxb.test; import ... -
oracle 查询锁SQL
2009-07-23 15:55 1416SELECT a.username, a.mac ... -
Java hashCode
2008-08-20 17:48 5907有许多人学了很长时间的Java,但一直不明白hashCode方 ... -
HTTP 1.1
2008-05-05 11:42 1357应用和技术的发展总是带来新的需求,从而推动新技术的发展。HTT ... -
一个java 线程互斥体
2007-11-22 10:56 1988java 代码 package test; ... -
简单的Hessian demo
2007-11-13 16:35 3504接到通知会在公司闲置一个月,真是开心啊!终于有时间研 ... -
DES 加密
2007-09-20 14:59 2600java 代码 public class Cry ... -
Hiberante Interceptor
2007-09-20 14:16 1236java 代码 public class Cry ... -
一段同步接收和发送MQ消息的代码
2007-08-13 16:03 5147java 代码 package com.sdb. ... -
一段操作LDAP的java代码
2007-08-13 15:51 4111java 代码 public class Lda ... -
IBM MQ + WebSphere + Spring JMS配置方法
2007-08-09 09:47 11570首先要在WAS里面配置IBM MQ作为JMS消息的提供者,在W ... -
Spring,WebSphere,JTA配置方法
2007-08-08 17:31 4135<aop:advisor span="&quo ... -
生成IBM Portal格式的URL
2007-08-08 17:16 2194最近做了个portal项 ...
相关推荐
### Hibernate Criteria 分组、排序与关联查询详解 #### 标题与描述理解 - **标题**:“hibernate criteria 分组 排序 关联”这一标题明确了本文将围绕Hibernate Criteria API进行分组、排序以及关联查询的具体...
数据库迁移(Migration)和遗留模型引导(Legacy Bootstrapping)、迁移(Migration)、域模型(Legacy Domain Model)、Hibernate Criteria查询(Legacy Hibernate Criteria Queries)、Hibernate原生查询(Legacy ...
29. 旧版Hibernate Criteria查询(Legacy Hibernate Criteria Queries):这部分讲述了如何处理旧版的Criteria查询。 30. 旧版Hibernate原生查询(Legacy Hibernate Native Queries):手册中说明了如何处理旧版的原生...
- Criteria Queries与Detached Criteria:Criteria Queries允许在运行时构建查询,而Detached Criteria则允许在不与数据库连接的情况下预定义查询,稍后进行执行,提高了灵活性。 4. Hibernate缓存机制: ...
Criteria Queries 是 Hibernate 的一种查询方式,可以使用面向对象的方式来查询对象。Criteria Queries 可以使用专门的 API 操作,例如 add、list 等。 Native SQL Hibernate 支持 native SQL 操作,可以使用原生 ...
在Hibernate中,核心概念包括实体(Entities)、持久化类(Persistent Classes)、会话(Sessions)、事务(Transactions)和查询(Queries)。实体是应用程序中的业务对象,它们对应数据库中的表;持久化类是包含@...
7. Criteria API和Criteria Queries: Hibernate还提供了Criteria API,用于构建动态查询。这种方式更加灵活,可以根据条件动态构建查询,避免了硬编码SQL。 8. Criteria和HQL的比较: HQL更适合静态查询,而...
命名查询是在Hibernate配置文件(如Query.hbm.xml)中预定义的HQL或Criteria查询,具有良好的可读性和可维护性。例如,在Query.hbm.xml中定义一个命名查询: ```xml <hibernate-mapping> <!-- ... --> from ...
在Hibernate中,核心概念包括实体(Entities)、会话(Sessions)、事务(Transactions)、查询(Queries)等。首先,实体是业务逻辑中的对象,它们通过注解或者XML配置与数据库表对应。例如,一个名为`User`的实体...
使用 Hibernate Criteria && DetachedCriteria Queries演示Exists Clause非常简单的项目 安装 git clone https://github.com/RameshRM/hibernate-sample.git 跑步 mvn install 这是一个maven项目,依赖项是 ...
15. 条件查询(Criteria Queries); 16. Native SQL查询; 17. 过滤数据; 18. XML映射; 19. 提升性能; 20. 工具箱指南; 21. 示例:父子关系(Parent Child Relationships); 22. 示例:Weblog 应用程序; 23. 示例:复杂...
10.4.3. 条件查询(Criteria queries) 10.4.4. 使用原生SQL的查询 10.5. 修改持久对象 10.6. 修改脱管(Detached)对象 10.7. 自动状态检测 10.8. 删除持久对象 10.9. 在两个不同数据库间复制对象 10.10. ...
JPA 2.0带来了更多的查询选项,包括 Criteria API 和 Named Queries,这些都增强了对数据查询的灵活性。 其次,4.1版本在事务管理和缓存方面也有所增强。它支持JTA(Java Transaction API)和JPA的...
- **查询语言HQL**:使用Hibernate Query Language执行数据库查询,以及 Criteria API 和 Named Queries 的使用。 总的来说,`hibernate_second2`项目提供了一个实战的平台,让我们能够深入了解和实践Hibernate的...
“Update queries only supported through HQL”错误的出现,通常是因为尝试使用Criteria API或者SQL更新语句进行实体的更新操作,而这两种方式在Hibernate中并不推荐。Hibernate设计之初就鼓励使用HQL或Criteria ...
Hibernate还提供了Criteria API,它是更加面向对象的查询方式。使用Criteria API查询部分字段,你可以这样做: ```java Criteria criteria = session.createCriteria(EntityName.class); criteria.add...
8. ** Criteria Queries与Detached Criteria**:Criteria Queries允许动态构造查询,而Detached Criteria可以在不与数据库交互的情况下创建查询对象,之后再进行执行,这在分页或延迟加载等场景下特别有用。...
在实际开发中,还需要考虑性能优化,比如使用缓存技术(如Hibernate的二级缓存)、预编译查询(HQL的Named Queries)等。同时,安全性也是一个重要的话题,例如防止SQL注入,对用户输入进行验证等。 总结起来,...
总的来说,Hibernate的HQL和Criteria查询提供了强大的数据操作能力,它们让开发者能够专注于业务逻辑,而不是底层的SQL细节,极大地提升了开发效率和代码质量。结合本地查询和性能优化策略,可以在Java应用中实现...