需求很简单,就是关联两个实体,多查询一个name出来。这样就费事了,用resultTransformer来做。就需要这么写
String hql = "select a.id as id, " + "a.assetsNo as assetsNo," + "a.assetsSpecification as assetsSpecification," + "a.bxBeginTime as bxBeginTime," + "a.bxEndTime as bxEndTime," + "a.contractId as contractId," + "a.clientId as clientId," + "a.assetsType as assetsType," + "a.manufacturerCode as manufacturerCode," + "a.supplierCode as supplierCode," + "a.count as count," + "a.installationLocation as installationLocation, " + "at.name as assetsTypeName from Assets a, AssetsType at where a.assetsType=at.id and a.clientId=:clientId and a.contractId=:contractId"; return findPageByHql(page, hql, params, Assets.class);
注意:as必须加上,否则会报错 Could not find setter for 0 on class com.kingen.bean.Assets
就他娘的为了关联一个name,我就需要多写这么多行,还傻叉的把这个类的所有字段列出来并且加上as。
hibernate这么玩效率也太低了吧!难怪现在都转Mybatis了。
本来想不用hql,用sql的addEntity,这样只需要select a.*,name就行了,但是name是transient的,是无法set值的(addEntity只对hibernate实体起作用)
private String assetsTypeName; // Constructors @Transient public String getAssetsTypeName() { return assetsTypeName; }
真的是无语了,大家在查hibernate VO的时候是怎么做的呢??
相关推荐
### 六步骤轻松完成Hibernate中生成VO.xml #### 第一步:下载Middlegen-Hibernate Middlegen-Hibernate是一款强大的代码生成工具,主要用于基于数据库表结构自动生成Java实体类(Value Object, VO)以及对应的...
### Hibernate的配置与使用详解 ...综上所述,Hibernate不仅简化了Java应用与数据库之间的交互,还提供了丰富的查询API,使得开发者能够更加高效地处理数据。无论是初学者还是经验丰富的开发者,都能够从中受益匪浅。
- 虽然可以使用Hibernate查询所有记录,但这种方式可能导致性能问题,特别是在大型数据集上。 - **3.1.2 根据主键查询** - 根据主键查询是更高效的方式,通常用于获取单条记录。 - **3.1.3 新增** - 使用`save...
在Java开发中,VO(Value Object)类通常用于在应用程序的不同层之间传递数据,比如从数据库获取的数据到前端展示。自动生成VO类可以大大提高开发效率,避免手动编写大量的getter、setter方法和其他样板代码。本篇将...
- `<one-to-many class="limq.hibernate.vo.History">`表示`Students`实体与`History`实体之间是一对多关系。 **6. 多对一关系映射:** - 反过来,在`History`实体类中可以定义一个多对一的关系。 - 示例代码中...
- **HQL (Hibernate Query Language)**: 类似于SQL的查询语言,但更加面向对象。 #### 九、数据关联 - **一对一关联**: 实体之间的简单关联关系。 - **一对多关联**: - 单向一对多: 仅在一个方向上维护关联关系。...
- 在实际项目中,合理利用Hibernate的各种特性(如缓存机制、查询语言等),可以使应用运行得更加稳定且易于维护。 通过上述对Hibernate的核心知识点的详细解析,希望能够帮助读者更好地理解和掌握这一关键技术,...
“Hibernate高级特性”章节则进一步探讨了XDoclet与Hibernate映射、数据检索(包括CriteriaQuery和HQL)、数据关联(如一对一、一对多、多对多关系处理)、数据访问(PO和VO的使用)、事务管理、锁机制、分页、缓存...
import vo.KZ_CZY; public class TestApp { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Session session = HibernateSessionFactory.getSession();...
- 后端通过Hibernate查询数据库验证用户信息。 - 如果用户名和密码匹配,则显示登录成功页;如果不匹配,则显示登录失败页。 #### 四、系统设计 ##### 1. 数据库设计 使用MySQL创建一个名为`Person`的表,包含以下...
- **Hibernate高级特性**: 如`XDoclet`映射工具的使用、数据检索、HQL查询语言等。 - **数据关联**: 详细讨论了一对一、一对多、多对多等关联类型。 - **数据访问**: 包含POJO(Plain Old Java Object)和VO...
4. **编写Bean/VO类及其映射文件**:定义实体类并创建对应的映射文件,如`User.hbm.xml`,用以描述实体类与数据库表之间的映射关系。 - `<class>`元素定义了映射类及其对应的表名。 - `<id>`元素配置主键的映射...
在Java开发领域,尤其是涉及到Spring框架以及数据持久化时,我们常常会遇到“PO”(Plain Old Java Object)和“VO”(Value Object)这两个概念。它们都是Java对象,但各自有不同的用途和特点。理解它们的区别对于...
Transient和Detached状态的对象统称为VO(Value Object),不被Hibernate管理,而Persistent对象被称为PO(PersistentObject),由Hibernate的实体管理容器管理,其变更会在事务提交时同步到数据库。 其次,实体...
先配置mysql数据驱动,打开eclipse database explorer perspective,选择tie数据库中的user表,创建hibernate Reverse Engineering 生成vo,还可以生成dao。 5. 这样框架就加载完毕了。下面就是SSH的整合了,首先...
### 如何实现WebWork+Spring+Hibernate框架结合 随着企业级应用需求的不断增加和技术的不断发展,集成多种技术栈成为一种趋势。WebWork+Spring+Hibernate是早期比较流行的一种技术组合,它们各自解决的问题域不同,...