Posted on 2006-09-28 15:52
非洲小白脸 阅读(5096)
评论(0) 编辑 收藏 所属分类:
hibernate
1
Criteria criteria
=
this.getSession().createCriteria(EquipmentPO.class);
2
criteria.
add
(Restrictions.allEq(new Map(Restrictions.eq("equipID",new String("
11020449
")),Restrictions.eq("equipID",new String("
11020449
"))));
3
//
注意:between查询条件可解释为查询EquipmentPO对象中的equipID属性值在new String("
11020449
")和new String("
11030137
")之间的所有记录值(包含两个端点)
4
criteria.
add
(Restrictions.
between
("equipID",new String("
11020449
"),new String("
11030137
")));
5
//
查询结果列表记录按照equipID的属性值来升序排序
6
criteria.addOrder(
Order
.
asc
("equipID"));
//
降序方式为:
Order
.
desc
("equipID")
7
//
通过EquipmentPO对象的主键id来查询
8
criteria.
add
(Restrictions.idEq("402882ac0d3f7ca8010d3f7ef869000b"));
9
Restrictions.
like
(fieldName, "
%
"
+
para
+
"
%
")
10
//
使用ilike方式进行模糊查询
11
criteria.
add
(Restrictions.ilike("equipID",new String("
%
11020
%
")));
12
//
ilike的i即ignore之意,所以这里查询出englishName值为"Optima XL 100K Ultracentrifuge"(忽略大小写)的记录
13
criteria.
add
(Restrictions.ilike("englishName",new String("Optima XL 100K Ultracentrifuge"),MatchMode.ANYWHERE));
//
这里
14
//
使用in方式有两种形式,即数组或者Collection的方式,可参考如下两个实例
15
//
criteria.
add
(Restrictions.
in
("equipID",new String
[]
{"
11020449
","
11020450
"}));
//
数组参数
16
Collection col
=
new ArrayList();
17
col.
add
(new String("
11020449
"));
18
col.
add
(new String("
11020450
"));
19
col.
add
(new String("
11020874
"));
20
criteria.
add
(Restrictions.
in
("equipID",col));
//
Collection参数
21
//
使用isEmpty
/
isNotEmpty方式用来判断EquipmentPO对象中的Collection类型的属性是否为空的所有记录
22
//
EquipmentPO对象中定义属性private
Set
equipFunctionDevelopPOs
=
new HashSet();
//
设备功能开发对象
23
criteria.
add
(Restrictions.isEmpty("equipFunctionDevelopPOs"));
24
criteria.
add
(Restrictions.isNotEmpty("equipFunctionDevelopPOs"));
25
//
使用isNull方式查询出所有schoolID属性没有值的记录。说明:Restrictions.isNull判断属性是否为空,为空返回true,反之返回false
26
criteria.
add
(Restrictions.
isNull
("schoolID"));
27
criteria.
add
(Restrictions.isNotNull("schoolID"));
28
//
与Restrictions.eq正好相反,表示不存在(
not
in
)
29
criteria.
add
(Restrictions.
not
(Restrictions.eq("equipID",new String("
11020449
"))));
30
//
使用Restrictions.sizeEq方式用来查询EquipmentPO对象中的Collection类型的属性equipFunctionDevelopPOs的size为1的所有记录
31
criteria.
add
(Restrictions.sizeEq("equipFunctionDevelopPOs",
1
));
32
//
使用sql限定的查询。注意{alias}.chnname这里是指实际表中的字段名而非属性名(不区分大小写)
33
criteria.
add
(Restrictions.sqlRestriction("{alias}.chnname
like
(?)","
%
电
%
",Hibernate.STRING));
34
criteria.
add
(Restrictions.sqlRestriction("{alias}.ENGNAME
like
(?)","
%
ptima
%
",Hibernate.STRING));
35
//
如果有多个查询条件,比如between子句的查询则如下:
36
BigDecimal
[]
unitPrice
=
{new BigDecimal(
402514
),new BigDecimal(
614891
)};
37
Type
[]
types
=
{Hibernate.BIG_DECIMAL,Hibernate.BIG_DECIMAL};
38
criteria.
add
(Restrictions.sqlRestriction("{alias}.unit_price
between
(?)
and
(?)",unitPrice,types));
39
List list
=
criteria.list();
40
System.out.println("size
===>
"
+
list.size());
41
return
list;