HQL语句 实例化对象查询数据

HQL: 连接查询

select

      new com.entity.order.CJTAfterSalesOrder(ts,gt.tid,gt.postDate) From CJTOutGoingTask AS gt,TSalesOrder AS ts    where gt.orderId=ts.salesOrderId

其中: TSalesOrder  字段  orderId,b,c   CJTOutGoingTask 字段salesOrderId,tid,postDate

将查询出来的TSalesOrder 对象和CJTOutGoingTask 对象中的部分属性组成一个新的对象CJTAfterSalesOrder  

这里需要创建对象类CJTAfterSalesOrder   并且添加构造函数、get/set方法。如下:

public CJTAfterSalesOrder(TSalesOrder salesOrder, String tid,

Date afterSalepostDate) {

super();

this.salesOrder = salesOrder;

this.tid = tid;

this.afterSalepostDate = afterSalepostDate;

}

/**

*/

public CJTAfterSalesOrder() {

super();

}

private TSalesOrder salesOrder;

private Long id;

private Long orderId;

private String tid;

private String afterSalememo;

private Integer status;

private Date afterSalepostDate;

private Date afterSalemodiDate;

private Integer count;

private String type;

public TSalesOrder getSalesOrder() {

return salesOrder;

}

public void setSalesOrder(TSalesOrder salesOrder) {

this.salesOrder = salesOrder;

}

public Long getId() {

return id;

}

public void setId(Long id) {

this.id = id;

}

public Long getOrderId() {

return orderId;

}

public void setOrderId(Long orderId) {

this.orderId = orderId;

}

public String getTid() {

return tid;

}

public void setTid(String tid) {

this.tid = tid;

}

public String getAfterSalememo() {

return afterSalememo;

}

public void setAfterSalememo(String afterSalememo) {

this.afterSalememo = afterSalememo;

}

public Integer getStatus() {

return status;

}

public void setStatus(Integer status) {

this.status = status;

}

public Date getAfterSalepostDate() {

return afterSalepostDate;

}

public void setAfterSalepostDate(Date afterSalepostDate) {

this.afterSalepostDate = afterSalepostDate;

}

public Date getAfterSalemodiDate() {

return afterSalemodiDate;

}

public void setAfterSalemodiDate(Date afterSalemodiDate) {

this.afterSalemodiDate = afterSalemodiDate;

}

public Integer getCount() {

return count;

}

public void setCount(Integer count) {

this.count = count;

}

public String getType() {

return type;

}

public void setType(String type) {

this.type = type;

}

  最后执行查询:List list=this.getBaseHibernateService().query(hql);

获取查询的结果集。  注: 别名必须添加 AS  不能使用对象.* 即:ts.*或者gt.*  如果查询的两个对象中有相同的字段 如  createDate,modiDate  如果直接From 所有数据则会报错。 

猜你喜欢

转载自2814704901.iteye.com/blog/2218652