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的时候是怎么做的呢??

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值