用原生sql查詢返回實體物件的方法

2022-07-21 06:30:16 字數 618 閱讀 7303

最近由於需求變更,客戶需要在原來的查詢基礎上加上乙個判斷條件,但是這個判斷條件所在的實體跟原來的查詢實體沒有直接關聯。為了不影響原來的查詢結果,改為用原生sql,使用left join來關聯查詢。為了不改變對查詢結果的處理邏輯,將查詢結果封裝成原來的物件進行操作。具體操作方法如下: 

1.基於jpa規範的程式: 

query query = entitymanager.createnativequery("select id, name, age from t_user"); 

query.unwrap(sqlquery.class).setresulttransformer(transformers.aliastobean(clazz)); 

//  其中clazz為封裝物件的class

list rows = query.getresultlist(); 

2.基於session的程式: 

sess.createsqlquery("select name, birthdate from cats").setresulttransformer(transformers.aliastobean(clazz)); 

這兩種方法需要注意的是查詢的字段的別名需要跟clazz的屬性對應。

jdbc查詢資料庫返回實體物件集合

最近做prefuse中用到原始的資料庫查詢 try system.out.println manage key manage key string sql select from layout where device name m text and manage key manage key li...

原生的多表查詢返回並處理

public listorderexportlist orderitems items,queryvariablevo qv,int starpos,int pagesize if stringutil.isnull items.getorders getmemberusername if stri...

EXCEL錶用SQL查詢的BUG

當excel的表中某一列資料,數字記錄多於文字記錄時即會預設該列為數字列,則文字記錄就顯示不出來,而文字多於數字記錄時,數字就顯示不出來.excel一般是通過前8行的資料來判斷該列的資料型別,當然這個值是可以通過登錄檔進行修改的.步驟如下 1,在執行中輸入regedit進入登錄檔編輯器 2.進入hk...