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 所有数据则会报错。
相关推荐
本篇文章将深入探讨HQL(Hibernate Query Language)的核心功能及其在数据查询方面的强大能力。HQL是一种面向对象的查询语言,用于在Hibernate框架中执行数据检索任务。它允许开发人员以一种接近Java语言的方式进行...
HQL语句的语法结构与SQL相似,但更注重对象和类的概念。以下将详细介绍HQL语句的几个关键部分: 1. **from 子句**:这是HQL查询的起点,用于指定要查询的持久化类。例如,`from Person as p`表示从`Person`类中选择...
通过以上示例可以看出,HQL不仅提供了灵活的查询方式,还能够很好地与对象模型相结合,使得开发者能够在面向对象的环境下进行高效的数据查询。同时,HQL还支持多种类型的连接查询,包括内连接、左外连接、右外连接...
`fetch`连接允许在查询中初始化相关联的对象,例如`from Cat as cat inner join fetch cat.mate`,这在处理集合时特别有用,它可以替代映射文件中的外联接和延迟加载设置。但`fetch`连接不应在使用`scroll()`或`...
### Hibernate中HQL语句查询学习笔记 #### HQL基础 **HQL**(Hibernate Query Language)是Hibernate框架推荐使用的查询语言,它提供了一种面向对象的方式来查询数据库,支持多种复杂的查询操作,如继承、多态及...
【HQL语句经典教程】 Hibernate Query Language(HQL)是Hibernate...通过熟练掌握HQL,开发者能更高效地操作和查询持久化对象,提高应用程序的性能。在实践中,应根据具体需求选择适当的查询策略,以达到最佳效果。
3. **创建Query对象**:将HQL语句传递给`Session`的`createQuery`方法,返回一个`Query`实例,该实例代表了你的查询。 4. **设置参数**:如果HQL中包含参数,如上面的例子中的`:eventTitle`,可以通过`Query`对象的`...
【HQL语句定义】 Hibernate Query Language(HQL)是Hibernate框架中用于查询对象化数据的面向对象的查询语言,它与SQL类似但专门针对对象模型设计。HQL允许开发者以类和对象的术语来编写查询,而不是数据库表和列。...
在IT领域,尤其是在Java开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它允许开发者使用面向对象...在实际项目中,合理运用HQL能大大简化数据查询和处理的工作,使得代码更加面向对象,易于理解和维护。
标题和描述均提到了“HQL精点查询语句”,这明确指向了HQL(Hibernate Query...HQL通过其丰富的语法和功能,极大地简化了对象关系映射中的数据查询过程,使得开发人员能够更加专注于业务逻辑而非底层的数据库交互细节。
总的来说,HQL更适合于编写结构化的、复杂的查询,而QBC则更适合于基于对象实例的简单查询。在实际开发中,开发者可以根据需求灵活选择适合的查询方式。在学习和实践中,理解并熟练掌握这两者,将极大地提升你的...
以下是对HQL语句的详细解释: 1. **选择语句**: - `from Person`:这表示从`Person`类中选取所有实例。这里的`Person`是持久化类,代表了数据库中的一个表。 - `as`关键字用于为查询结果的实体创建别名,如`from...
其内置的HQL(Hibernate Query Language)是一种面向对象的查询语言,它允许开发者以类和对象的方式进行数据查询。本文将对Hibernate HQL查询语法进行总结,涵盖基础查询、属性查询、实例化查询以及查询链接等多个...
### HQL查询详解 HQL(Hibernate Query ...综上所述,HQL不仅提供了强大的数据查询能力,而且其面向对象的特性使得数据访问更加直观和高效。对于Java开发者来说,熟练掌握HQL将极大地提升与数据库交互的效率和质量。
以上内容涉及了使用 HQL 和 DetachedCriteria 进行查询、参数化查询、执行更新操作以及简单的统计查询等常见的 Hibernate 操作。这些知识点对于理解和掌握 Hibernate 框架的基本使用至关重要,同时也是开发基于 ...
### HQL语句大全知识点详解 #### 一、HQL简介 HQL(Hibernate Query Language)是一种面向对象的查询语言,由Hibernate框架提供。虽然它的语法结构与SQL类似,但HQL是专为面向对象查询设计的,能够很好地处理继承、...
在Spring框架与Hibernate技术结合使用时,HQL(Hibernate Query Language)作为对象查询语言被广泛应用于数据查询操作之中。本文将详细解析Spring框架中常用的HQL查询方法及其应用场景。 #### 一、find(String ...
3. **创建查询对象**:将编写的HQL语句传递给Session的`createQuery`方法来创建一个Query实例。 4. **设置参数**:如果HQL语句中含有参数,则需要通过Query对象的`setXxx`方法为这些参数赋值。 5. **执行查询并遍历...
HQL(Hibernate Query Language)是Hibernate框架提供的查询语言,它基于对象模型而不是传统的SQL语法,使得开发人员能够更加自然地操作数据库中的对象。本文将详细介绍HQL在进行数据增删改查时的常见用法。 #### ...
例如,如果我们只想获取用户的名字和年龄,可以使用如下HQL语句: ```java List[]> list = session.createQuery("select user.name, user.age from TUser as user").list(); ``` 此外,我们还可以利用 HQL 动态...