0 0

HQL优化查询使用exist0

StringBuffer sb = new StringBuffer();
sb.append("select distinct t.inquiryNum,t.contractNum,t.orderNum,t.tcNumTc,t.collectType,t.pdfName,t.signedName,t.invoiceNum,t.deliveryDateChr"
+ ",(select count(t4.id) from TcsCtPdfLog t4 where t4.tcNumTc=t.tcNumTc and t4.opFlag='"
+ Constants.CERTIFI_QUALITY_LOG_OPTION_TYPE_PRINT
+ "' and t4.userNum='"
+ user.getMemberNumber()
+ "')"
+ ",t.factory,t.inDate,t.collectNum,t.accpAuthority,t.machineId"
+ ",(select count(t4.id) from TcsCtPdfLog t4 where t4.tcNumTc=t.tcNumTc and t4.opFlag='"
+ Constants.CERTIFI_QUALITY_LOG_OPTION_TYPE_DOWNLOAD
+ "' and t4.userNum='"
+ user.getMemberNumber()
+ "')"
+ ",t.attitudeFlag,t.attitudeType "
+ ",t.dqContractId "
+ " from VcsCeQualitySummary t, TLfqmPdfCertificateModel t1 "
+ " where 1=1"
+ " and t.tcNumTc is not null and t.status "
+ Constants.INSPE_CERTI_STATUS_VALID
+ " and (t.attitudeFlag = '1' or t.attitudeFlag = '9') "
+ " and t.attitudeType = '1'"
+ " and t.tcNumTc = t1.id.tcNumTc "
+ " and t.orderNum = t1.id.orderNum ");
if (!ConstantsCsm.ROLE_GF.equals(user.getMemberNumber())) {
sb.append(" and t.ordOwner='" + user.getMemberNumber() + "'");
}
if (!TLfqmUtil.IsEmpty(searchModel.getOrderNumBoard())) {
sb.append(" and t.orderNum= '" + searchModel.getOrderNumBoard()
+ "'");
} else if (null != orderNums && orderNums.size() > 0) {
sb.append(" and t.orderNum in (");
for(Iterator it = orderNums.iterator(); it.hasNext();){
String orderNum = (String)it.next();
sb.append("'"+ orderNum +"'").append(",");
}
sb.delete(sb.length() - 1, sb.length());
sb.append(")");
}
if (!TLfqmUtil.IsEmpty(searchModel.getTcNumTcBoard())) {
sb.append(" and t.tcNumTc='" + searchModel.getTcNumTcBoard()
+ "'  or (t.collectNum = '" + searchModel.getTcNumTcBoard()
+ "' and t.collectType in " + Constants.COLLECTTYPE
+ " )  ");
}
if (!TLfqmUtil.IsEmpty(searchModel.getPackNumBoard())) {
sb.append(" and t.packNum='" + searchModel.getPackNumBoard() + "'");
}
if (!TLfqmUtil.IsEmpty(searchModel.getInvoiceNumBoard())) {
sb.append(" and t.invoiceNum='" + searchModel.getInvoiceNumBoard()
+ "'");
}
if (!TLfqmUtil.IsEmpty(searchModel.getContractNumBoard())) {
sb.append(" and t.contractNum='"
+ searchModel.getContractNumBoard() + "'");
}
if (!TLfqmUtil.IsEmpty(searchModel.getBoardPlankBoard())) {
sb.append(" and t.boardPlank='" + searchModel.getBoardPlankBoard()
+ "'");
}
if (!TLfqmUtil.IsEmpty(searchModel.getCollectTypeBoard())) {
sb.append(" and t.collectType='"
+ searchModel.getCollectTypeBoard() + "'");
}
if (!TLfqmUtil.IsEmpty(searchModel.getCustOrdNumBoard())) {
sb.append(" and t.custOrdNum like'"
+ searchModel.getCustOrdNumBoard() + "%'");
}
if (!TLfqmUtil.IsEmpty(searchModel.getHeatNumBoard())) {
sb.append(" and t.ponoNo ='" + searchModel.getHeatNumBoard() + "'");
}
if (!TLfqmUtil.IsEmpty(searchModel.getDeliveryDateChrStarBoard())) {
sb.append(" and t.deliveryDateChr >='"
+ searchModel.getDeliveryDateChrStarBoard() + "'");
}
if (!TLfqmUtil.IsEmpty(searchModel.getDeliveryDateChrEndBoard())) {
sb.append(" and t.deliveryDateChr <='"
+ searchModel.getDeliveryDateChrEndBoard() + "'");
}
if (!TLfqmUtil.IsEmpty(searchModel.getShipNumBoard())) {
sb.append(" and t.shipNum ='" + searchModel.getShipNumBoard() + "'");
}
if (!TLfqmUtil.IsEmpty(searchModel.getPartNumberBoard())) {
sb.append(" and t.partNumber ='" + searchModel.getPartNumberBoard() + "'");
}
if (!TLfqmUtil.IsEmpty(searchModel.getDqContractId())){
sb.append(" and t.dqContractId ='" + searchModel.getDqContractId() + "'");
}
System.out.println("sql:" + sb.toString());

问题补充:怎么把以上HQL语句改为exist形式来查询
2014年6月16日 16:57

1个答案 按时间排序 按投票排序

0 0

采纳的答案

HQL 可以直接用SQL
在传递一个集合的索引集或者是元素集(elements与indices 函数) 或者传递一个子查询的结果的时候,可以使用SQL函数any, some, all, exists, in
select mother from Cat as mother, Cat as kit
where kit in elements(foo.kittens)
select p from NameList list, Person p
where p.name = some elements(list.names)
from Cat cat where exists elements(cat.kittens)
from Player p where 3 > all elements(p.scores)
from Show show where 'fizard' in indices(show.acts)

2014年6月16日 17:59

相关推荐

    hibernateHQL关联查询

    ### Hibernate HQL 关联查询详解 #### 一、引言 在进行数据库操作时,关联查询是必不可少的一部分,尤其在处理复杂的数据结构时更是如此。Hibernate作为一种流行的Java持久层框架,提供了强大的对象关系映射(ORM...

    HQL连接查询和注解使用总结

    ### HQL连接查询和注解使用总结 #### HQL连接查询概述 HQL(Hibernate Query Language)是一种面向对象的查询语言,它允许开发者以一种更自然的方式查询对象,而不是直接查询底层数据库表。HQL支持多种连接查询...

    hql模糊查询hql模糊查询

    为了提高效率并减少潜在的安全风险,可以使用`StringBuffer`来构建HQL查询语句。这种方式可以在一定程度上避免字符串拼接带来的性能问题,同时也减少了SQL注入的风险。但是,相比直接使用参数绑定的方式,其可读性和...

    HQL查询及语法

    ### HQL查询及语法详解 #### 一、HQL简介 HQL,全称为Hibernate Query Language,是Hibernate框架提供的一种面向对象的查询语言。它基于SQL标准,但更加强调对象模型,支持Java中的对象关系映射(ORM),能够处理...

    hql多表查询

    在IT领域,特别是数据库操作与查询中,HQL(Hibernate ...此外,掌握HQL多表查询不仅有助于优化数据库操作,还能增强对底层数据模型的理解,对于任何从事企业级应用开发的软件工程师而言,都是一项必不可少的技能。

    hibernate的HQL的模糊查询

    在HQL中,我们可以使用`like`关键字来进行模糊查询。`like`关键字后面可以跟一个包含通配符的字符串。常见的通配符有: - `%`:代表零个、一个或多个任意字符。 - `_`:代表一个任意字符。 例如,如果我们有一个`...

    HQL查询pdf资料

    HQL查询的基本结构包括关键字如`SELECT`、`FROM`、`WHERE`、`GROUP BY`、`HAVING`、`ORDER BY`等,这些关键字的使用与SQL非常相似,但是HQL还支持面向对象的特性,如属性路径表达式。 ##### 实体的更新与删除 在...

    hibernate hql各类查询范例

    以上内容涉及了使用 HQL 和 DetachedCriteria 进行查询、参数化查询、执行更新操作以及简单的统计查询等常见的 Hibernate 操作。这些知识点对于理解和掌握 Hibernate 框架的基本使用至关重要,同时也是开发基于 ...

    hql语句 使用大全

    使用HQL查询所有记录时,可以通过以下格式来实现: ```java String hql = "from com.mypack.User4"; Query query = session.createQuery(hql); List lists = query.list(); ``` 遍历结果集可以采用多种方式,例如: ...

    HQL查询.ppt

    HQL查询 帮助文档

    HQL语句查询

    HQL语句查询

    HQL参数查询和Criteria查询

    1、掌握Hibernate框架应用项目 2、学习HQL参数查询和Criteria查询 3、比较HQL和Criteria的不同 建立web项目,通过页面查询构造动态查询语句,struts2和hibernate框架整合。

    Hibernate HQL查询 分页查询 模糊查询.docx

    2. **性能优化**: 对于大型数据集,应考虑使用`setFirstResult`和`setMaxResults`进行分页查询以提高效率。 3. **错误处理**: 在实际应用中,应添加适当的异常处理逻辑,确保程序的健壮性。 4. **事务管理**: 示例...

    HQL的具体内容和使用

    它对底层数据库透明,这意味着你可以在不同的数据库上使用相同的HQL查询,而无需考虑具体的数据库语法差异。 执行HQL查询的步骤通常包括: 1. 创建Session对象,这是与Hibernate交互的基础。 2. 创建HQL查询语句,...

    大数据开发+hive优化方法大全+hql优化

    【大数据开发+hive优化方法大全+hql优化】 在大数据处理领域,Hive 是一个非常重要的工具,它提供了基于 SQL 的查询语言(HQL)来处理大规模数据集。针对Hive的性能优化,可以从多个方面进行,包括SQL语句优化、...

    Spring中常用的hql查询方法

    在Spring框架与Hibernate技术结合使用时,HQL(Hibernate Query Language)作为对象查询语言被广泛应用于数据查询操作之中。本文将详细解析Spring框架中常用的HQL查询方法及其应用场景。 #### 一、find(String ...

    hql精点查询语句.doc

    标题和描述均提到了“HQL精点查询语句”,这明确指向了HQL(Hibernate Query Language)在数据库查询中的应用。HQL是Hibernate框架提供的一种面向对象的查询语言,它允许开发人员以面向对象的方式编写数据库查询,而...

    HibernateUtil分装完整版HQL查询

    - HQL查询的性能:虽然HQL方便,但在大型系统中应考虑其性能影响,可能需要优化查询以减少数据库负载。 - 数据库独立性:HQL提供了一定程度的数据库无关性,但并非完全。在特定场景下,可能需要使用原生SQL查询以...

Global site tag (gtag.js) - Google Analytics