您的位置:首页 > 其它

Hibernate的检索方式(二)

2010-06-12 13:41 399 查看
<< Hibernate的检索方式(一)

| 首页

| Hibernate的检索方式(三) >>

2008-01-14

Hibernate的检索方式(二) - [Hibernate
]

版权声明
:转载时请以超链接形式标明文章原始出处和作者信息及本声明

http://aumy2008.blogbus.com/logs/13887948.html

二.设定查询条件




where

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

HQL


QBC

支持的各种运算

运算类型

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

函数。






2



HQL

查询支持数学运算表达式,而

QBC

不支持。




2

、范围运算

HQL

中的

in

示例:

c.name in (‘aa’,’bb’)



QBC

中的

in

示例:

String[] names={‘aa’,’bb’}; Expression.in(‘name’,names);






3

、字符串模式匹配

HQL



QBC

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

通配符名称

通配符

作用

百分号

%

匹配任意类型且任意长度(长度可以为
0

)的字符串,如果是中文,需要两个百分号,即“
%%



下划线

_

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

QBC



MatchMode

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

匹配模式

举例

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

、逻辑运算

待续!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: