二.設定查詢條件
在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=; 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、邏輯運算
待續!
Hibernate檢索方式 二
使用別名帶引數查詢 test public void test3 模糊查詢 test public void test10 投影操作 查詢物件的某幾個屬性 test public void test9 查詢客戶的名稱和id 泛型中使用具體物件 list list session.createquer...
Hibernate檢索方式
hibernate 的檢索方式有5種。customer c session.get customer.class,2 c.getorders size 可以根據已經載入的物件導航到其他物件,如一對多的查詢。session.get customer.class,3 session.load order...
Hibernate 檢索方式
hibernate常見檢索方式有以下幾種 1 導航物件圖檢索方式 根據已經載入的物件導航到其他物件。例如對於已經載入的customer物件,呼叫customer.getorders iterator 方法,則得到所有與之關聯的order物件。2 oid檢索方式 此方式是按照物件的oid來檢索物件。常...