當前位置:首頁 » 編程語言 » 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-03-22 05:53:34 瀏覽:793
編程知識卡片 發布:2025-03-22 05:40:40 瀏覽:371
搭建的網站伺服器連接失敗 發布:2025-03-22 05:39:08 瀏覽:592
浪潮的伺服器地址 發布:2025-03-22 05:37:30 瀏覽:410
凱撒加密在線 發布:2025-03-22 05:36:45 瀏覽:656
空調壓縮機銘牌含義 發布:2025-03-22 05:27:03 瀏覽:62
編程強省 發布:2025-03-22 05:26:21 瀏覽:142
跨雲伺服器平台 發布:2025-03-22 05:25:30 瀏覽:654
安卓如何在寶馬車上放歌 發布:2025-03-22 05:06:15 瀏覽:284
命令提示符進入文件夾 發布:2025-03-22 05:00:09 瀏覽:408