无序集和有序集,是针对hibernate数据持久过程中,是否保持数据集合中的记录排列顺序加以区分;也就是,对于一个有序集,其中元素的排列次序将会在库表中制定的字段保存,当我们读取时,也会以同样的次序排列;排列强调的是针对现有数据,以特定的逻辑对排列次序进行调整。而排序的结果,是数据在内存中的某种排列次序,属于临时状态;
数据排列有2种方式:
- sort,Collection中的数据排序,如对一个List中的元素先后顺序进行调整(sort操作是在JVM中完成);
- order-by,对数据库执行Select SQL时,由order by子句实现的数据排序方式(order-by在数据库中完成);
Sort:
<set name="books" lazy="true" table="_books" sort="natural">
<key column="user_id"/>
<element type="string" column="books"/>
</set>
可排序Set实现了java.util.SortedSet接口,sort="natural"指定采用了java默认排序机制;
Order-by:
Collection的order-by排序方式,其实现原理也是借助SQL的order-by子句;
<set name="books" lazy="true" table="_books" order-by="books_desc">
<key column="user_id"/>
<element type="string" column="books"/>
</set>
分享到:
相关推荐
这通常是由于字符集设置、数据库排序规则以及Hibernate的配置等因素导致的。本文将深入探讨如何解决这些问题,确保MySQL数据库中的中文数据能按照正确的顺序进行排序。 首先,我们需要了解MySQL字符集的基础知识。...
在Hibernate中,使用`Criteria`进行查询时,可以通过添加排序条件来对结果集进行排序。`Criteria`提供了一个非常灵活的方式来实现这一点。 **示例代码**: ```java Criteria criteria = session.createCriteria...
在Hibernate中,你可以直接在HQL(Hibernate Query Language)或JPA的`@OrderBy`注解中指定排序字段。例如,如果我们要对`User`实体按名字升序排序,可以在实体类上添加注解: ```java @Entity public class User {...
对于Hibernate,我们可以使用`Criteria` API或`HQL`(Hibernate查询语言)进行查询,然后将返回的结果集包装到`ResultWrapper`中进行后续处理。 此外,我们还可以参考JQuery的延迟加载(lazy loading)概念,以优化...
在高级搜索功能方面,Hibernate Search支持了诸如拼写纠错、音近词搜索等高级特性,这些功能可以让用户即使在输入错误的情况下也能找到他们想要的结果。拼写纠错功能有助于捕获用户的输入错误并提供正确或相近的搜索...
总的来说,这个压缩包资料集提供了一个深入学习EJB3和Hibernate的基础,涵盖了这两个框架的主要概念、配置以及使用方法。对于希望在企业级Java应用开发中掌握这些核心技术的开发者来说,这是一份非常宝贵的资源。...
- **描述**:允许 Hibernate 使用 JDBC2 的可滚动结果集。 - **取值**:`true` 或 `false`。 - **示例**:`hibernate.jdbc.use_scrollable_resultset=true` ##### 6. 使用流处理二进制数据 (Use Streams for Binary...
提供了结果集转换工具,如`AliasToEntityMapTransformer`,它可以将查询结果转换为Map,便于处理复杂的查询结果。 通过理解并熟练运用这些包和类,开发者可以有效地利用Hibernate API来管理数据库操作,提高开发...
在3.1.x版本中,Hibernate对性能进行了多方面的优化,包括延迟加载(Lazy Loading)、批处理(Batch Processing)和结果集映射(Result Set Mapping)等,旨在减少数据库交互次数,提升系统性能。 九、总结 ...
9. **性能优化**:提供性能调优建议,如批处理、延迟加载、结果集缓存等。 10. **其他高级特性**:涵盖动态模型、懒加载、代理、事件监听器、自定义类型、JPA支持等进阶话题。 **标签:“hibernate3.2 参考文档”*...
JPA是Java官方制定的ORM规范,而Hibernate是其最流行的实现之一。这个版本的Hibernate优化了实体管理工厂(EntityManagerFactory)和实体管理器(EntityManager)的性能,提升了数据持久化的效率。 接下来,我们...
《Hibernate5实例程序》是一份专为学习Hibernate5框架所编写的代码实例集。Hibernate作为Java领域中的一款主流对象关系映射(ORM)工具,极大地简化了数据库操作,使得开发者能够更加专注于业务逻辑,而非底层的SQL...
ScrollableResults 允许按需加载结果集,避免一次性加载大量数据造成内存压力;FirstResult 设置起始行,MaxResults 设置每页的最大行数,以此实现分页功能。 **示例项目 "mhouse"** 在 "mhouse" 这个示例项目中,...
- **构建查询**:Lucene查询和Hibernate Search查询的构造方法,包括通用查询、分页、排序和结果获取策略。 - **结果处理**:考虑性能因素,控制结果集大小,使用结果转换器,并理解查询结果。 - **过滤器**:基于...
在Hibernate中,它被用来增强数据处理能力,比如在 Criteria 查询中使用 CollectionUtils 来处理结果集。 4. **antlr-2.7.6.jar**:ANTLR (ANother Tool for Language Recognition)是一个强大的解析工具,用于生成...
5. **hibernate.jdbc.use_scrollable_resultset**:启用JDBC2的可滚动结果集,提高处理大数据集的能力。 6. **hibernate.jdbc.use_streams_for_binary**:在处理二进制或可序列化类型时使用流,提高效率。 7. **...
- **SQL**:可以直接执行SQL查询,但失去了Hibernate的一些优势,如自动类型转换和对象化结果集。 - **Criteria(QBC - Query By Criteria)**:基于对象的查询方式,提供了动态构建查询的能力,更加灵活,但可能...
同时,通过`criteria.addOrder(Order.asc("name"))` 或 `criteria.addOrder(Order.desc("name"))` 可以设定查询结果的排序方式,按照指定属性升序或降序排列。 尽管Criteria查询提供了很多便利,但它的功能相比...
3. **执行查询**:执行Criteria查询,得到的结果集是一个List。 4. **结果转换**:将查询结果的List转换为商品对象列表,以便进一步处理和展示。 ```java List<Goods> goodsList = criteria.list(); ``` **三、...
`createQuery()` 方法用于构建 HQL 查询,返回 `Query` 对象,通过设置参数、排序、分页等,然后执行 `list()` 获取结果集。Criteria 查询提供了一种更加面向对象的查询方式,通过构建 Criteria 对象并设置限制条件...