`

hibernate 查询VO

 
阅读更多

需求很简单,就是关联两个实体,多查询一个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的时候是怎么做的呢??

 

0
0
分享到:
评论

相关推荐

    六步骤轻松完成Hibernate中生成VO.xml

    ### 六步骤轻松完成Hibernate中生成VO.xml #### 第一步:下载Middlegen-Hibernate Middlegen-Hibernate是一款强大的代码生成工具,主要用于基于数据库表结构自动生成Java实体类(Value Object, VO)以及对应的...

    hibernate的配置使用和各种查询

    ### Hibernate的配置与使用详解 ...综上所述,Hibernate不仅简化了Java应用与数据库之间的交互,还提供了丰富的查询API,使得开发者能够更加高效地处理数据。无论是初学者还是经验丰富的开发者,都能够从中受益匪浅。

    Hibernate3教程

    - 虽然可以使用Hibernate查询所有记录,但这种方式可能导致性能问题,特别是在大型数据集上。 - **3.1.2 根据主键查询** - 根据主键查询是更高效的方式,通常用于获取单条记录。 - **3.1.3 新增** - 使用`save...

    java根据数据库自动生成vo 类

    在Java开发中,VO(Value Object)类通常用于在应用程序的不同层之间传递数据,比如从数据库获取的数据到前端展示。自动生成VO类可以大大提高开发效率,避免手动编写大量的getter、setter方法和其他样板代码。本篇将...

    Hibernate留言板

    - `<one-to-many class="limq.hibernate.vo.History">`表示`Students`实体与`History`实体之间是一对多关系。 **6. 多对一关系映射:** - 反过来,在`History`实体类中可以定义一个多对一的关系。 - 示例代码中...

    Hibernate开发指南.pdf

    - **HQL (Hibernate Query Language)**: 类似于SQL的查询语言,但更加面向对象。 #### 九、数据关联 - **一对一关联**: 实体之间的简单关联关系。 - **一对多关联**: - 单向一对多: 仅在一个方向上维护关联关系。...

    hibernate 资料hibernate 资料hibernate 资料

    - 在实际项目中,合理利用Hibernate的各种特性(如缓存机制、查询语言等),可以使应用运行得更加稳定且易于维护。 通过上述对Hibernate的核心知识点的详细解析,希望能够帮助读者更好地理解和掌握这一关键技术,...

    Hibernate开发指南___夏昕

    “Hibernate高级特性”章节则进一步探讨了XDoclet与Hibernate映射、数据检索(包括CriteriaQuery和HQL)、数据关联(如一对一、一对多、多对多关系处理)、数据访问(PO和VO的使用)、事务管理、锁机制、分页、缓存...

    myEclipse使用hibernate图解

    import vo.KZ_CZY; public class TestApp { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Session session = HibernateSessionFactory.getSession();...

    Struts+DAO+Hibernate的登陆

    - 后端通过Hibernate查询数据库验证用户信息。 - 如果用户名和密码匹配,则显示登录成功页;如果不匹配,则显示登录失败页。 #### 四、系统设计 ##### 1. 数据库设计 使用MySQL创建一个名为`Person`的表,包含以下...

    Hibernate开发指南

    - **Hibernate高级特性**: 如`XDoclet`映射工具的使用、数据检索、HQL查询语言等。 - **数据关联**: 详细讨论了一对一、一对多、多对多等关联类型。 - **数据访问**: 包含POJO(Plain Old Java Object)和VO...

    hibernate笔记

    4. **编写Bean/VO类及其映射文件**:定义实体类并创建对应的映射文件,如`User.hbm.xml`,用以描述实体类与数据库表之间的映射关系。 - `<class>`元素定义了映射类及其对应的表名。 - `<id>`元素配置主键的映射...

    po与vo区别.doc

    在Java开发领域,尤其是涉及到Spring框架以及数据持久化时,我们常常会遇到“PO”(Plain Old Java Object)和“VO”(Value Object)这两个概念。它们都是Java对象,但各自有不同的用途和特点。理解它们的区别对于...

    《深入浅出Hibernate》读书笔记

    Transient和Detached状态的对象统称为VO(Value Object),不被Hibernate管理,而Persistent对象被称为PO(PersistentObject),由Hibernate的实体管理容器管理,其变更会在事务提交时同步到数据库。 其次,实体...

    使用Struts+Spring+Hibernate整合开发例子

    先配置mysql数据驱动,打开eclipse database explorer perspective,选择tie数据库中的user表,创建hibernate Reverse Engineering 生成vo,还可以生成dao。 5. 这样框架就加载完毕了。下面就是SSH的整合了,首先...

    如何实现webwork+spring+hibernate框架结合

    ### 如何实现WebWork+Spring+Hibernate框架结合 随着企业级应用需求的不断增加和技术的不断发展,集成多种技术栈成为一种趋势。WebWork+Spring+Hibernate是早期比较流行的一种技术组合,它们各自解决的问题域不同,...

Global site tag (gtag.js) - Google Analytics