`

Hibernate的HQL not like查询

阅读更多

      今天想用Hibernate的Restrictions用not like查询,结果发现Restrictions有not和like方法没有notlike方法,ilike表示不区分大小写的模糊查询。我想用Restrictions.not(Restrictions.like(propertyName, value))来查询,结果查看Hibernate生成的SQL语句为:not propertyName like value出了!!!

     后果发现Restrictions有一个sqlRestriction方法,喜出望外!可以用

     Restrictions.sqlRestriction(" VERIFY_RECORD not like '%" + value + "%' ");

     如查询VERIFY_RECORD可以为null或者包含 value字符串可以用:

     Restrictions.sqlRestriction("( VERIFY_RECORD is null or VERIFY_RECORD not like '%"
          + ssoUser.getUserType() + "%' )")

     若还有其它的条件可以如下:

 

List<Criterion> criterion = new ArrayList<Criterion>();
    ReportSSOUser ssoUser = (ReportSSOUser) UserInfoUtils.getCurrentLoginUser();
    if (StringUtils.isNotBlank(engineering_id)) {
      criterion.add(Restrictions.eq("engineering_id", engineering_id));
    } else {
      criterion.add(Restrictions.eq("engineering_id", ssoUser.getEngineeringId()));
    }
    if (StringUtils.isNotBlank(ssoUser.getSectionId())) {
      criterion.add(Restrictions.eq("section_id", ssoUser.getSectionId()));
    }
    if (StringUtils.isNotBlank(model.getReport_id())) {
      criterion.add(Restrictions.eq("report_id", model.getReport_id()));
    }
    criterion.add(Restrictions.eq("report_status", RptReportInstance.REPORT_STATUS_WAIT_APPROVAL));
    // 查询不包括自己已经审核了的报表信息
    if (ssoUser.getUserType() != null) {
      criterion.add(Restrictions.sqlRestriction("( VERIFY_RECORD is null or VERIFY_RECORD not like '%"
          + ssoUser.getUserType() + "%' )"));
    }

   总结如下:

         criterion.add()中的Hibernate都会把它作为一个SQL语句where 后来的 and 连接起来!

3
0
分享到:
评论
2 楼 zqb666kkk 2014-09-05  
非常好  解决了我的问题
1 楼 fdg97 2010-03-09  
[url=http://www.phome.asia/forum/thread/22856.html

]hibernate中like查询问题:[/url]

相关推荐

    Hibernate HQL基础 限定查询条件 .doc

    Hibernate 中,HQL(Hibernate Query Language)是一种面向对象的查询语言,它允许开发者用类名、属性和关联来编写查询,而不是直接使用数据库的SQL语句。HQL的基础包括了各种查询条件的设定,这些条件使得我们可以...

    hibernate的HQL的模糊查询

    下面我们将深入探讨Hibernate的HQL模糊查询及其应用。 一、HQL概述 HQL是一种面向对象的查询语言,它的语法结构与SQL类似,但更关注于对象和实体,而不是数据库表和列。HQL允许开发者直接操作Java对象,避免了直接...

    Hibernate-HQL-查询-Query资料

    在Hibernate中,HQL(Hibernate Query Language)是专为ORM设计的一种面向对象的查询语言,它允许开发者以类和对象的方式进行数据查询,而不是直接使用SQL。本资料主要涵盖了Hibernate HQL查询的基本概念、语法以及...

    hibernate 中HQL语句查询学习笔记

    ### Hibernate中HQL语句查询学习笔记 #### HQL基础 **HQL**(Hibernate Query Language)是Hibernate框架推荐使用的查询语言,它提供了一种面向对象的方式来查询数据库,支持多种复杂的查询操作,如继承、多态及...

    hql语句查询

    HQL(Hibernate Query Language)是Hibernate框架中用于查询数据的一种语言。它类似于SQL,但面向对象特性更明显,可以更加灵活地处理复杂的对象图关系。HQL支持基本的查询操作如选择、更新、删除等,并且可以方便地...

    Hibernate HQL教程

    ### Hibernate HQL 教程知识点总结 #### 1.1 HQL基础 ##### 1.1.1 默认数据库表和数据 - **介绍**: 本文档以`joblog`数据库为例,该数据库包含三个表:`student`(学生表)、`course`(课程表)和`sc`(选课表)。 - **...

    hibernate的hql语句

    【hibernate的HQL语句】是Hibernate框架中用于操作数据库的重要组成部分,它是一种面向对象的查询语言,类似于SQL,但更加强调对象的概念。HQL能够处理复杂的对象关系,如继承、多态和关联,使得在进行SSH(Spring、...

    HQL(Hibernate Query Language):

    Hibernate Query Language(HQL)是Hibernate框架中用于操作对象关系映射(ORM)的一种查询语言。它是面向对象的,设计目的是让开发人员可以使用对象而不是数据库表进行查询,从而简化了与数据库交互的过程。HQL的...

    hql精点查询语句.doc

    HQL支持各种比较和逻辑操作符,如`=`、`&lt;&gt;`、`&gt;`、`、`&gt;=`、`、`between`、`not between`、`in`、`not in`、`is`、`like`等,用于构建复杂的查询条件。 示例: - `from DomesticCat cat where cat.name between 'A'...

    hql查询语句

    HQL(Hibernate Query Language)是Hibernate提供的一种SQL的面向对象版本,用于在数据库中执行查询。本文将详细探讨HQL中的查询语句,特别是涉及的统计函数和一些关键子句。 首先,`from`子句用于指定查询的源,如...

    HQL与QBC的查询条件.doc

    HQL(Hibernate Query Language)和QBC(Query By Example)是Hibernate提供的两种主要的查询方式,它们提供了灵活且强大的查询能力。下面将详细阐述这两种查询方式以及它们的查询条件。 **HQL(Hibernate Query ...

    NHibernate hql 可用函数,函数大全

    ### NHibernate HQL 可用函数详解 #### 一、查询基本语法与示例 ...以上是NHibernate HQL查询语言的基本使用方法及相关内置函数的详细介绍。通过这些示例,你可以更好地理解和应用HQL来完成数据库操作任务。

    HQL 语法总结 实体查询

    =, , &gt;, &lt;, &gt;=, , between, not between, in, not in, is, like ``` #### 三、属性查询 属性查询允许开发者仅获取实体的部分属性,而不是整个实体。例如,如果我们只想获取用户的名字和年龄,可以使用如下HQL...

    hibernate所用到HQL经典语句大全

    HQL(Hibernate Query Language)是一种面向对象的查询语言,它允许开发者使用类及其属性来编写查询语句,而不是传统的SQL语句。这使得开发人员可以更加专注于业务逻辑而非底层数据库的细节。 **1.1 基本查询** - *...

    hibernate查询详细代码讲解

    本节我们将深入探讨Hibernate中的HQL(Hibernate Query Language)查询,这是一种专为Hibernate设计的面向对象的查询语言,类似于SQL但更贴近于Java程序员的思维。 首先,HQL查询的基本语法结构与SQL类似,但对象化...

    常用易懂,易会HQL查询

    Hibernate Query Language(HQL)是Hibernate框架提供的一种面向对象的查询语言,它允许开发者以类和属性的名称来编写查询,而不是传统的SQL中的表和列名。本文将深入探讨“常用易懂,易会”的HQL查询,帮助你快速...

    Hibernate进行数据查询

    本篇将详细阐述如何使用Hibernate进行数据查询,包括基本数据查询、HQL(Hibernate Query Language)以及查询条件的设定。 1. **基本查询** Hibernate提供了一个简单易用的API来进行数据查询。主要通过`Session`...

    NHibernate HQL 条件查询

    在探讨NHibernate HQL条件查询时,我们首先要理解NHibernate框架以及HQL(Hibernate Query Language)的基本概念。NHibernate是一个开放源代码的对象关系映射(ORM)解决方案,它为.NET平台提供了一种将对象模型与...

    HQL简易介绍(DOC文档)

    HQL作为Hibernate的核心组成部分,不仅提供了与Criteria查询类似的面向对象封装,还具有更丰富的查询特性,使得复杂的查询操作变得简单易懂。 【HQL基本结构】 HQL查询语句主要包括以下几个部分: 1. `SELECT`:...

    HQL详解

    Hibernate Query Language(HQL)是Hibernate框架中的对象关系映射查询语言,它允许开发者以面向对象的方式书写查询,而无需关心底层数据库的SQL语法。HQL是SQL的一个面向对象的版本,提供了更为简洁且强大的查询...

Global site tag (gtag.js) - Google Analytics