當前位置:首頁 » 編程語言 » jpasql查詢語句

jpasql查詢語句

發布時間: 2023-08-06 21:09:19

Ⅰ JPA使用原生sql結果集轉換成Map

  知爛      JPA中使用原生sql查詢出的結果中每一條記錄是object數組,如下所示

        String sql = "select id,group_name from form_temp_type";

        Query query = entityManager.createNativeQuery(sql);

        List<Object[]> list = query.getResultList();//最終的結果集是object數組

        我們在使用的時候需要從數組中逐個取出,比較麻煩。很多情況下我們需要的是對象或者Map.

       String sql = "select id,group_name from form_temp_type";

        Query query = entityManager.createNativeQuery(sql);

        query.unwrap(SQLQuery.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);

        List<Map> list = query.getResultList();//這里的結果是Map,我們可以通過欄位名稱獲取到相應的值

public static List findRelatives(Stringsql,Map<String,Object>params,EntityManagerentityManager,Class<?>clazz){

        Sessionsession=entityManager.unwrap(Session.class);

        NativeQueryquery=session.createNativeQuery(sql);

        query.unwrap(NativeQueryImpl.class).setResultTransformer(Transformers.aliasToBean(clazz));

    爛穗    for(Stringkey:params.keySet()){

                Objectvalue=params.get(key);

                飢猛卜query.setParameter(key,value);

        }

        entityManager.close();

        returnquery.getResultList();

}

Ⅱ 原生sql查詢怎樣返回page對象

最近由於需求變更,客戶需要在原來的查詢基礎上加上一個判斷條件,但是這個判斷條件所在的實體跟原來的查詢實體沒有直接關聯。為了不影響原來的查詢結果,改為用原生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的屬性對應。

Ⅲ jpa 中的自定義sql語句 distinct能用嗎

首先要解釋的是:Distinct是避免 查詢里的重復行,不是針對某一列的。
簡單舉例,數據表這樣寫:
姓名 年齡 性別
----------------------
張三 男 25
李四 女 25
王五 男 42
那麼我這么寫:

select distinct * from 表名

毫無效果,因為壓根就沒重復行,如果把語句減少一個查詢欄位:

select distinct 年齡 from 表名

那結果就只有兩條了

熱點內容
編譯翻譯運行 發布:2025-02-06 21:05:20 瀏覽:200
安卓源碼版本 發布:2025-02-06 20:51:34 瀏覽:431
安卓系統網路播放器哪個好 發布:2025-02-06 20:42:02 瀏覽:818
頭條緩存的視頻格式 發布:2025-02-06 20:32:18 瀏覽:116
ftp不顯示文件夾 發布:2025-02-06 20:30:37 瀏覽:127
蘋果手機解壓怎麼打開 發布:2025-02-06 20:29:35 瀏覽:476
單片機程序存儲器 發布:2025-02-06 20:29:31 瀏覽:209
串的c語言 發布:2025-02-06 20:25:44 瀏覽:750
編程函數總結 發布:2025-02-06 20:09:11 瀏覽:317
編程obj 發布:2025-02-06 19:59:52 瀏覽:845