在HIBERNATE里投影查詢數(shù)據(jù)
在數(shù)據(jù)庫(kù)中我們經(jīng)常會(huì)用到類(lèi)似這樣的sql語(yǔ)句:SELECT A,B,C FROM TABLE_A,在HIBERNATE里實(shí)現(xiàn)起來(lái)相比較而然,稍微復(fù)雜了一點(diǎn)。在HIBERNATE里語(yǔ)句應(yīng)當(dāng)這么來(lái)寫(xiě):SELECT tableA.a,tableA.b,tableA.c FROM tableA
tableA-----------表TABLE_A對(duì)應(yīng)的HIBERNATE的類(lèi)名
a,b,c-------------表TABLE_A里的三個(gè)列名對(duì)應(yīng)的HIBERNATE的類(lèi)的幾個(gè)屬性
最后便是取出查詢的數(shù)據(jù),整個(gè)返回值為Iterator,一行數(shù)據(jù)就是一個(gè)Object[]數(shù)組,數(shù)組里的每個(gè)變量對(duì)應(yīng)tableA.a,tableA.b,tableA.c 的順序取出此行該列的數(shù)據(jù)值,然后根據(jù)tableA.a,tableA.b,tableA.c 在類(lèi)里的類(lèi)型在對(duì)其進(jìn)行相應(yīng)的強(qiáng)制類(lèi)型轉(zhuǎn)換。
但是在我測(cè)試時(shí)如果在語(yǔ)句中FROM之前用到一些類(lèi)似TO_CHAR,DECODE的函數(shù)則就會(huì)報(bào)錯(cuò),提示沒(méi)有該列,也不能像tableA.a AS TP這樣來(lái)寫(xiě)。如果有解決這種情況出現(xiàn)的問(wèn)題的,請(qǐng)告知。
posted on 2005-10-25 14:57 十三郎 閱讀(1567) 評(píng)論(1) 編輯 收藏 所屬分類(lèi): HIBERNATE