?
?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對(duì)象中的equipID屬性值在new?String("
11020449
")和new?String("
11030137
")之間的所有記錄值(包含兩個(gè)端點(diǎn))
?4
????????criteria.
add
(Restrictions.
between
("equipID",new?String("
11020449
"),new?String("
11030137
")));
?5
????????
//
查詢結(jié)果列表記錄按照equipID的屬性值來(lái)升序排序
?6
????????criteria.addOrder(
Order
.
asc
("equipID"));
//
降序方式為:
Order
.
desc
("equipID")????????
?7
????????
//
通過(guò)EquipmentPO對(duì)象的主鍵id來(lái)查詢
?8
????????criteria.
add
(Restrictions.idEq("402882ac0d3f7ca8010d3f7ef869000b"));????????
?9
????????Restrictions.
like
(fieldName,?"
%
"?
+
?para
+
?"
%
")
10
????????
//
使用ilike方式進(jìn)行模糊查詢
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方式有兩種形式,即數(shù)組或者Collection的方式,可參考如下兩個(gè)實(shí)例
15
????????
//
criteria.
add
(Restrictions.
in
("equipID",new?String
[]
{"
11020449
","
11020450
"}));
//
數(shù)組參數(shù)
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參數(shù)????????
21
????????
//
使用isEmpty
/
isNotEmpty方式用來(lái)判斷EquipmentPO對(duì)象中的Collection類型的屬性是否為空的所有記錄
22
????????
//
EquipmentPO對(duì)象中定義屬性private?
Set
?equipFunctionDevelopPOs?
=
?new?HashSet();?
//
?設(shè)備功能開發(fā)對(duì)象
23
????????criteria.
add
(Restrictions.isEmpty("equipFunctionDevelopPOs"));
24
????????criteria.
add
(Restrictions.isNotEmpty("equipFunctionDevelopPOs"));
25
????????
//
使用isNull方式查詢出所有schoolID屬性沒(méi)有值的記錄。說(shuō)明: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方式用來(lái)查詢EquipmentPO對(duì)象中的Collection類型的屬性equipFunctionDevelopPOs的size為1的所有記錄
31
????????criteria.
add
(Restrictions.sizeEq("equipFunctionDevelopPOs",
1
));????????
32
????????
//
使用sql限定的查詢。注意{alias}.chnname這里是指實(shí)際表中的字段名而非屬性名(不區(qū)分大小寫)
33
????????criteria.
add
(Restrictions.sqlRestriction("{alias}.chnname?
like
?(?)","
%
電
%
",Hibernate.STRING));
34
????????criteria.
add
(Restrictions.sqlRestriction("{alias}.ENGNAME?
like
?(?)","
%
ptima
%
",Hibernate.STRING));
35
????????
//
如果有多個(gè)查詢條件,比如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;
posted on 2006-08-25 14:24
★yesjoy★ 閱讀(687)
評(píng)論(0) 編輯 收藏 所屬分類:
Hibernate學(xué)習(xí)