今天看到网友 pistol, 发贴
hibernate的sqlQuery有没有setResultTransformer这个方法, 大致是问如何为特殊返回结果的 Query 映射持久类。
由于hibernate3.2之前没有 setResultTransformer 这个方法。推荐你一个简单的办法。
将你新建的 DTO类(我们的项目叫VO) 的sql 看作一个View实体,就像普通表一样,为其建立一个 hbm.xml 文件,其中的
<class name="xxx.xxx.CatDTO" table="V_CAT">
,
并设置字段映射,tablename 随便写一个名字,例如 V_CAT, 就是看作一个虚表。
然后,
session.createQuery(HQL );
session.createSQLQuery( SQL).addEntity("cat", voClass);
这样就达到你的目的了。
对HQL来说,直接使用就行了。
不过,对原生sql有个问题,你的sql语句必须按照hibernate的要求,为每列写成alias的形式。
SELECT {cat}.ID AS {cat.id}, {cat}.SEX AS {cat.sex} FROM CAT {cat}
我已在公司的SSH框架中进行了改进, 直接丢进native sql,就能执行。
SELECT NAME, BIRTHDATE FROM CATS
。
分享到:
相关推荐
`hibernate-mapping`节点是Hibernate映射文件中的顶级节点,用于定义一系列配置选项,控制整个映射文件的行为和映射规则。这些配置包括数据库连接细节、默认的映射策略等。 - **schema**: 定义了数据库的Schema名称...
"Hibernate映射配置实例大全"是一个全面深入的资源,旨在帮助开发者理解和掌握如何有效地配置Hibernate以实现对象关系映射(ORM)。在这个文档中,我们将探讨各种关键的映射配置方法,以及相关的实例。 首先,我们...
本文将详细探讨如何使用Hibernate映射集合属性List,以及如何让Hibernate自动创建对应的数据库表,无需手动编写SQL语句。 首先,我们需要理解Hibernate的映射机制。Hibernate通过ORM(对象关系映射)技术将Java对象...
Hibernate允许我们在集合映射中定义排序规则,使用`@OrderBy`注解指定排序字段和顺序。同时,通过Query对象的`setFirstResult`和`setMaxResults`方法可以实现分页查询。 10. **集合缓存** 为了提高性能,...
### Hibernate关联映射的作用与常用属性详解 #### 关联映射概述 在对象关系映射(Object Relational Mapping,简称ORM)技术中,Hibernate作为Java领域内非常成熟且功能强大的框架之一,它允许开发者将Java类映射...
在Java的持久化框架Hibernate中,集合映射是将数据库中的表关系映射到对象模型中的集合类,如List、Set、Map等。这允许我们在Java代码中操作对象集合,而Hibernate负责处理底层的SQL查询和数据存储。本文将深入探讨`...
接下来,我们讨论如何自动生成Hibernate映射文件和实体类: 1. 首先,你需要选择你的Java项目,然后右击并选择MyEclipse菜单,接着选择“Add Hibernate Capabilities”。这个操作会引导你配置Hibernate的相关设置,...
总之,Hibernate映射文件的配置是实现高效、准确的对象关系映射的关键,理解并熟练掌握其配置规则对于使用Hibernate框架进行持久化操作至关重要。通过合理配置主键策略和属性映射,可以显著提高应用程序的数据访问...
4. **查询和遍历**:使用HQL(Hibernate Query Language)或Criteria API来查询List集合,然后遍历结果。 **四、性能优化** 1. **缓存策略**:利用Hibernate的第一级缓存和第二级缓存,减少对数据库的频繁访问。 ...
在Java的持久化框架中,Hibernate是一个非常流行的ORM(对象关系映射)工具,它能够将数据库中的数据与Java对象进行映射,从而简化数据库操作。"Hibernate自动生成持久化类和映射文件"这个话题主要涉及如何利用...
在Java世界中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它简化了数据库操作,使得开发者可以使用面向对象的方式来处理数据。本篇将详细探讨Hibernate中的映射关系,主要包括实体之间的一对一、一对多、...
6. **排序查询**:`Order`接口可以用来设置查询结果的排序,`Criteria`提供`addOrder()`方法添加排序规则。 7. **事务管理**:为了确保数据的一致性,公共查询类中的每个方法应包裹在`Transaction`中,处理异常时...
在Hibernate中,映射关系是其核心功能之一,它定义了对象与数据库表之间的对应规则,包括一对一、一对多、多对一和多对多四种主要关系。接下来,我们将深入探讨这些映射关系。 一对一(OneToOne)关系: 在数据库...
在IT行业中,数据库是存储和管理数据的核心工具,而Hibernate是一个流行的关系型对象-关系映射(ORM)框架,它简化了Java应用与数据库之间的交互。本教程将深入讲解如何根据数据库表自动生成实体类、Hibernate配置...
在Hibernate映射文件中,通过`<many-to-one>`标签将User类的group属性映射到t_user表的gid外键。 - 反之,如果一个User属于一个Group(一对多),则在Group类中添加一个User的集合。映射文件中,使用`<set>`标签...
总而言之,Java数据类型、Hibernate映射类型和SQL数据类型之间的对应关系是Java开发者尤其是进行数据库交互的开发者必须掌握的基础知识。通过深入理解并熟练运用这些映射规则,我们可以更好地实现Java应用与数据库...
2. **排序**:`Criteria`允许你指定查询结果的排序规则,使用`addOrder`方法添加`Order`实例。 ```java criteria.addOrder(Order.asc("name")); criteria.addOrder(Order.desc("groupId")); ``` 3. **分页**:...
在Hibernate的配置文件中,我们需要指定外键的映射规则。例如在 **User.hbm.xml** 中: ```xml <hibernate-mapping> <!-- ... --> <!-- ... --> </hibernate-mapping> ``` 这里的`<many-to-one>`标签表示一对一...
在Hibernate映射文件中,我们可以使用`<set>`标签来配置。例如: ```xml ``` 这里,`name`属性定义了集合属性名,`table`指定关联的数据库表,`inverse`表示是否反转关系,`key`和`many-to-many`则定义了...
和其它许多批注一样,在多对多关联中很多值是自动生成,党双向多对多关联中没有定义任何物理映射时,Hibernate根据以下规则生成相应的值,关联表名:主表表名+下划线+从表表名,关联到主表的外键名:主表名+下划线+...