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 所有数据则会报错。
相关推荐
1.2.4 在映射文件配置HQL语句 15 1.3 HQL的嵌套子查询 15 1.3.1 嵌套子查询的概念 15 1.3.2 带有IN谓词的子查询 16 1.3.3 比较子查询 16 1.3.4 带有ANY或ALL的子查询 17 1.4 HQL的多表查询 17 1.4.1 表之间的关联...
初始化Hibernate:在要使用Hibernate的类的方法中实例化Configuration对象并用Configuration对象的configure()方法将hibernate.cfg.xml中的配置加载到内存,即: Configuration config = new Configuration()....
要使用HQL(HibernateQueryLanguage)查询语句,HQL查询语句是面向对象的,它引用类名及类的属性名。 select/update/delete…… from …… where …… group by …… having …… order by …… asc/desc ...
第1章 理解对象/关系持久化 1.1 什么是持久化 1.1.1 关系数据库 1.1.2 理解SQL 1.1.3 在Java中使用SQL 1.1.4 面向对象应用程序中的持久化 1.2 范式不匹配 1.2.1 粒度问题 1.2.2 ...
Session接口 Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。)。但需要注意的是Session对象是非线程安全的。同时,Hibernate的session不同于JSP应用中的...
ORM:使用元数据信息来描述对象和数据库之间的关系,并且能够自动实现java中持久化对象到关系型数据库中表的映射 脏检查:自动对缓存中的数据进行检查,并且选择在合适的时机和数据库之间进行交互,以保持数据的...
SessionFactory接口 SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻...它可以使用HQL语言或SQL语句两种表达方式
当Hibernate在查询数据的时候,数据并没有存在与内存中,当程序真正对数据的操作时,对象才存在与内存中,就实现了延迟加载,他节省了服务器的内存开销,从而提高了服务器的性能。 3.Hibernate中怎样实现类之间的...
操纵持久化对象 698 选择继承关系的映射方式 699 映射多对一多态关联 702 内容总结 705 独立实践 705 第三十六章:HQL介绍 706 学习目标 706 HQL的出现 707 进入HQL世界 707 聚合 708 分组 709 在Java中使用HQL 709 ...
实例化集合和代理(Initializing collections and proxies) 20.1.5. 使用批量抓取(Using batch fetching) 20.1.6. 使用子查询抓取(Using subselect fetching) 20.1.7. 使用延迟属性抓取(Using lazy ...
15. HQL: Hibernate查询语言 15.1. 大小写敏感性问题 15.2. from子句 15.3. 关联(Association)与连接(Join) 15.4. select子句 15.5. 聚集函数 15.6. 多态查询 15.7. where子句 15.8. 表达式 15.9. order ...
实例化集合和代理(Initializing collections and proxies) 20.1.5. 使用批量抓取(Using batch fetching) 20.1.6. 使用子查询抓取(Using subselect fetching) 20.1.7. 使用延迟属性抓取(Using lazy ...
19.1.3. 实例化集合和代理(Initializing collections and proxies) 19.1.4. 使用批量抓取(Using batch fetching) 19.1.5. 使用子查询抓取(Using subselect fetching) 19.1.6. 使用延迟属性抓取(Using lazy...
19.1.3. 实例化集合和代理(Initializing collections and proxies) 19.1.4. 使用批量抓取(Using batch fetching) 19.1.5. 使用子查询抓取(Using subselect fetching) 19.1.6. 使用延迟属性抓取(Using lazy...
QueryBudiler,使得更多简单的单表查询可以通过对象组织查询、更改逻辑,避免过多去写相似性的SQL语句,减少DAO接口量。 三、一些亮点 1、Entity的设计:很多人看了也许会说,这个不是POJO,不是纯粹的Java ...
List find(String queryString):根据HQL查询字符串来返回实例集合 List findByNamedQuery(String queryName):根据命名查询返回实例集合 Object get(Class entityClass, Serializable id):根据主键加载特定持久化...
{7.4}基本类型数据序列化}{108}{section.7.4} {7.5}String的序列化}{109}{section.7.5} {7.6}InputStream与OutputStream}{109}{section.7.6} {7.6.1}FileInputStream}{109}{subsection.7.6.1} {7.6.2}...
9.2.6 使用反向工程生成持久化对象、映射文件和DAO类 143 9.2.7 使用Hibernate功能 151 9.3 MyEclipse中Hibernate框架的高级操作 152 9.3.1 在Hibernate反向工程中定制映射关系 153 9.3.2 使用HQL编辑器 154 9.4 ...