• Hibernate的检索方式(二)【转】


    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://aumy2008.blogbus.com/logs/13887948.html

    二.设定查询条件

           where子句中给出的是对象的属性名,而不是字段名。

    HQLQBC支持的各种运算

    运算类型

    HQL运算符

    QBC运算符

    含义

    比较运算

    =

    Expression.eq()

    等于

    <> 

    Expression.not(Expression.eq())

    不等于

    Expression.gt()

    大于

    >=

    Expression.ge()

    大于等于

    Expression.lt()

    小于

    <=

    Expression.le()

    小于等于

    is null

    Expression.isNull()

    等于空值

    is not null

    Expression.isNotNull()

    非空值

    范围运算

    in (列表)

    Expression.in()

    等于列表中的某一个值

    not in (列表)

    Expression.not(Expression.in())

    不等于列表中的任意一个值

    between 1 and 2

    Expression.between()

    大于等于值1并且小于等于值2

    not between 1 and 2

    Expression.not(Expression.between())

    小于值1或者大于值2

    字符串模式匹配

    like

    Expression.like()

    字符串模式匹配

    逻辑运算

    and

    Expression.add()或者Expression.conjunction()

    逻辑与

    or

    Expression.or()或者Expression.disjunction()

    逻辑或

    not

    Expression.not()

    逻辑非

     1、比较运算

    1)不区分大小写:HQL使用lower()或者 upper()来实现(如:”…lower(c.name)=’tom’”);

                                 QBC使用.ignoreCase()来实现(如:Expression.eq(“”,””) .ignoreCase())。

    注:在HQL中,可以调用SQL函数。lower()转小写,upper()转大写。

           QBC不支持直接调用SQL函数。

     

    2HQL查询支持数学运算表达式,而QBC不支持。

     

    2、范围运算

    HQL中的in示例: c.name in (‘aa’,’bb’)

    QBC中的in示例: String[] names={‘aa’,’bb’}; Expression.in(‘name’,names); 

     

    3、字符串模式匹配

    HQLQBC通用:字符串模式中的通配符

    通配符名称

    通配符

    作用

    百分号

    %

    匹配任意类型且任意长度(长度可以为0)的字符串,如果是中文,需要两个百分号,即“%%

    下划线

    _

    匹配单个任意字符,常用来限制字符串表达式的长度

     

    QBCMatchMode类包含的各个静态常量实例

    匹配模式

    举例

    MatchMode.START

    Expression.like(“name”,”y”, MatchMode.START)

    姓名以y开头

    MatchMode.END

    Expression.like(“name”,”y”, MatchMode. END)

    姓名以y结尾

    MatchMode.ANYWHERE

    Expression.like(“name”,”y”, MatchMode. ANYWHERE)

    姓名中包含y

    MatchMode.EXACT

    Expression.like(“name”,”y”, MatchMode. EXACT)

    精确匹配,姓名必须为y

     

    4、逻辑运算

    待续!

  • 相关阅读:
    一个奇怪的SystemClock_Config问题解决方法
    Keil5下载STM32库
    Entry point (0x08000000) points to a Thumb instruction but is not a valid Thumb code pointer.
    Error: failed to execute 'C:KeilARMARMCC'的解决办法
    C#委托的介绍(delegate、Action、Func、predicate)
    CopyFromScreen在屏幕缩放情况下需要做处理
    C# CEF 封装UserControl
    一个单js文件也可以运行vue
    vue自学入门-3(vue第一个例子)
    vue自学入门-1(Windows下搭建vue环境)
  • 原文地址:https://www.cnblogs.com/myssh/p/1438800.html
Copyright © 2020-2023  润新知