Hibernate讀書筆記 資料過濾

2022-02-16 20:33:22 字數 2863 閱讀 9375

hibernate3 提供了一種創新的方式來處理具有「顯性

(visibility)」

規則的資料,那就是使用hibernate filter。 hibernate filter是全域性有效的、具有名字、可以帶引數的過濾器, 對於某個特定的hibernate session

您可以選擇是否啟用(或禁用)某個過濾器。

一旦啟用了資料過濾器,則不管是資料查詢,還是資料載入,該過濾器將自動作用於所有資料,只有滿足過濾條件的記錄才會被選出來。

過濾器條件相當於定義乙個 非常類似於類和各種集合上的「where」

屬性的約束子句,但是過濾器條件可以帶引數。 應用程式可以在執行時決定是否啟用給定的過濾器,以及使用什麼樣的引數值。 過濾器的用法很像資料庫檢視,只不過是在應用程式中確定使用什麼樣的引數的。

過濾器分以下幾步:

1、定義過濾器。

節點之內的

節點:

1

<

filter-def

name

="myfilter"

>23

<

filter-param

name

="myfilterparam"

type

="string"

/>45

filter-def

>

2、使用過濾器。

定義好之後,就可以在某個類中使用這個過濾器。通過元素將指定的過濾器應用到指定的持久化類

1

<

class

name

="myclass"

...>23

...4

5<

filter

name

="myfilter"

condition

=":myfilterparam = my_filtered_column"

/>67

class

>

condition屬性值是乙個

sql風格的

where

子句,因此

condition

屬性所指定的過濾條件應該根據表明、列名進行過濾。

也可以在某個集合使用它:

1

<

set

...>23

<

filter

name

="myfilter"

condition

=":myfilterparam = my_filtered_column"

/>45

set>

可以在多個類或集合中使用某個過濾器;某個類或者集合中也可以使用多個過濾器。

3、在程式中通過session

啟用過濾器。

session物件中會用到的方法有:

enablefilter(string filtername), getenabledfilter(string filtername), 

和 disablefilter(string filtername). session

中預設是不啟用過濾器的,必須通過

session.enabledfilter()

方法顯式的啟用。 該方法返回被啟用的

filter

的例項。以上文定義的過濾器為例:

session.enablefilter("myfilter").setparameter("myfilterparam", "some-value");

下面是乙個完整的例項

過濾器的配置檔案

1

<

package

="com.hibernate.domain"

>23

<

class

name

="person"

table

="person"

>45

<

id name

="id"

column

="person_id"

>67

<

generator

class

="identity"

/>8id

>910

<

property

name

="name"

type

="string"

/>

11<

property

name

="age"

type

="int"

/>

1213

14<

filter

name

="myfilter"

condition

=":filterparam = age"

/>

15class

>

1617

18<

filter-def

name

="myfilter"

>

19<

filter-param

name

="filterparam"

type

="int"

/>

20filter-def

>

21>

示例程式:

1

public

class

personmanager 15}

16 }

一般來說如果某個篩選條件使用的很頻繁,那麼我們可以將該篩選條件設定為過濾器;如果是臨時的資料篩選,還是使用常規的查詢比較好。

golang 讀書筆記 資料型別

slice 切片 代表變長的序列,序列中每個元素都有相同的型別。乙個slice型別一般寫作t,其中t代表slice中元素的型別 slice的語法和陣列很像,只是沒有固定長度而已。乙個slice由三個部分構成 指標 長度和容量。指標指向第乙個slice元素對應的底層陣列元素的位址,要注意的是slice...

python讀書筆記 資料型別擴充套件

python 數字資料型別用於儲存數值。資料型別是不允許改變的,這就意味著如果改變量字資料型別的值,將重新分配記憶體空間。python 支援三種不同的數值型別 整型 int 通常被稱為是整型或整數,是正或負整數,不帶小數點。python3 整型是沒有限制大小的,可以當作 long 型別使用,所以py...

讀書筆記 資料分析思維(3)

5w2h分析法 基礎的產品經理思維法 what 產品是什麼?when 產品是麼時候上線?where 產品在 上線?why 使用者為什麼需要它?who 它是為誰設計的?how 產品怎麼運作的?how much 它有什麼付費功能?如何變現?當看到乙個產品可以利用5w2h來具體分析,然後製作產品週期計畫。...