`
kingsleylong
  • 浏览: 55622 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

[转]用Hibernate查询部分字段

阅读更多

How to query several columns with Hibernate?

Even though Hibernate is called an object-relational mapper it's easy to select only a few properties instead of the whole mapped object. The hibernate query language (HQL) is very expressive. If you select some properties instead of the whole object, the call of Query#list()returns a list of object arrays. Each field of the array contains one of the selected properties.



1.select c.name, c.order
2.from Customer c

In my opinion iterating over lists of Object[] is verbose and error-prone because processing the result-list is directly dependant on the sequence of selected properties in the hql string. If you change the query string you have to change the sourcecode as well.
Did I mention how expressive HQL is? :) Check out the following snippet:
1.select new map(c.name as name, c.order as order)
2.from Customer c

Instead of returning arrays this query will return a list of maps each containing entries with aliases (the keys) to selected values.
Actually it's possible to let Hibernate return partially loaded entities instead of maps containing the properties of interest. Check out the following example:
1.select new Customer(c.name, c.order)
2.from Customer c

This query will return lists of customers assuming there is an appropriate constructor.

You should really pay attention with this approach of partially loaded entities because updating these entities could lead to accidently loosing data.
From:http://bwinterberg.blogspot.hk/2009/08/how-to-query-several-properties-with.html
分享到:
评论

相关推荐

    Hibernate_query查询数据表中部分字段.

    本文将深入探讨如何使用Hibernate进行数据表中的部分字段查询,这在实际开发中是非常常见的需求。 首先,理解Hibernate的核心概念:实体(Entity)、持久化类(Persistent Class)和映射文件(Mapping File)。实体...

    Hibernate更新某些字段

    那么,如何使用 Hibernate 实现更新某些字段呢? 首先,我们需要了解 Hibernate 的 update 方法。在 Hibernate 中, update 方法可以更新整个对象的所有字段。如果我们直接使用 Session.update(Object o) 方法,...

    hibernate3中通过nativesql或取部分字段并映射为具体对象的实现

    本篇文章将深入探讨在Hibernate3中如何通过Native SQL查询部分字段,并将其映射到具体的Java对象上。这种方式在处理一些特定的、效率较高的SQL查询时非常有用。 首先,我们需要理解Hibernate中的`SQLQuery`接口,这...

    Hibernate读取blob字段

    综上所述,使用Hibernate读取Blob字段涉及到配置映射文件、定义实体类中的Blob属性、执行查询以及流式处理Blob数据。理解这些概念和实践方法,可以帮助我们有效地管理和操作大数据类型的持久化对象。在实际项目中,...

    Hibernate连表查询 Hibernate连表查询

    如果查询结果包含多个字段,并且希望将这些字段封装成一个对象,则可以使用Hibernate的投影列表功能,或者手动创建一个新的类来存储查询结果。 ### 总结 本文主要介绍了Hibernate中的连表查询方法及其在实际开发中...

    hibernate查询语句--HQL

    在 Hibernate 中,执行查询操作的主要方式之一是使用 Hibernate 查询语言(HQL)。 HQL 是一种面向对象的查询语言,它支持标准 SQL 的大部分功能,并添加了一些额外的功能,如对象导航、集合投影等。本文将深入探讨...

    Hibernate的高级查询

    HQL是Hibernate的SQL方言,它是面向对象的查询语言,允许我们用类和对象的名字而不是表和列来写查询语句。HQL支持各种复杂的查询,如连接查询、分组查询、子查询等。例如,我们可以用以下HQL语句查询所有未删除的...

    hibernate的多态查询

    8. **性能优化**:尽管多态查询提供了便利,但也可能影响性能,尤其是在使用SINGLE_TABLE策略时,子类的额外字段可能导致数据冗余。因此,合理选择继承策略和优化查询是必要的。 **总结** Hibernate的多态查询是其...

    hibernate映射和查询

    **hibernate映射与查询** Hibernate 是一个流行的 Java 应用程序开发框架,它提供了一个持久层解决方案,简化了数据库操作。对于初学者来说,理解 Hibernate 的映射和查询机制是至关重要的,因为它们构成了 ...

    Hibernate操作数据库大字段的示例(附源码及详细开发使用方法)。

    2. **查询大字段**:查询时,大字段将以字符串形式返回,可以直接访问。 ```java Long articleId = ...; Session session = sessionFactory.openSession(); Transaction tx = session.beginTransaction(); Article...

    hibernateHQL关联查询

    在进行数据库操作时,关联查询是必不可少的一部分,尤其在处理复杂的数据结构时更是如此。Hibernate作为一种流行的Java持久层框架,提供了强大的对象关系映射(ORM)功能,使得开发者能够以面向对象的方式来处理...

    解决Hibernate对于Date类型的数据返回结果中时分秒不对的问题

    在使用Hibernate进行数据库操作时,有时会遇到一个常见的问题,即当从数据库中查询Date类型的数据并由Hibernate返回时,发现结果中的时分秒部分不正确。这个问题通常源于多个因素,包括日期时间的序列化与反序列化...

    Hibernate中使用HQLQuery查询全部数据和部分数据的方法实例

    Hibernate中使用HQLQuery查询全部数据和部分数据的方法实例 在 Hibernate 框架中,HQL(Hibernate Query Language)是一种强大的查询语言,允许开发者使用 SQL 风格的语句来查询和操作数据。HQL 提供了多种查询方式...

    Hibernate识别数据库特有字段实例详解

    Hibernate识别数据库特有字段实例详解 前言: Hibernate已经为绝大多数常用的数据库数据类型提供了内置支持,但对于某些数据库的专属字段支持就不够好了。 这些特殊数据类型往往提供了比常规数据类型更好的数据表达...

    关于struts2和hibernate的部分注解解释

    ### 关于Struts2与Hibernate的部分注解解释 在现代软件开发中,特别是Java Web应用领域,Struts2、Hibernate以及Spring Data JPA等技术框架因其高效性和灵活性而备受青睐。本文将详细介绍这些框架中的一些关键注解...

    Hibernate,hibernate笔记

    Hibernate 是一个开源的对象关系映射(ORM)框架,它允许...理解和熟练使用Hibernate配置、异常处理、HQL查询以及IDE集成是每个Java开发者必备的技能。通过上述步骤,你可以更好地了解和应用Hibernate进行数据库操作。

    hibernate search全文索引的创建及查询

    在Hibernate Search中,你可以使用Lucene的查询语法或者直接使用对象查询语言(OQL)进行全文搜索。以下是一个示例: ```java FullTextSession session = Search.getFullTextSession(entityManager); session....

Global site tag (gtag.js) - Google Analytics