JPA Query查詢語句實現SQL中IN的參數設置 以及 Oracle表結構查詢


工作中使用到JPA查詢數據庫,遇到 createNativeQuery() 語句設置 SQL 中 IN 的查詢條件,以此文記錄。

例子:

public List<Student> getStuInStuIds(List list) {
    // 用於拼接SQL
    StringBuilder sql = new StringBuilder();

    // 設置參數集
    Map<String, Object> params = new HashMap<String, Object>();
    params.put("STUID", list);

    // SQL拼接
    sql.append("SELECT ");
    sql.append("    ID, ");
    sql.append("    NAME, ");
    sql.append("    SEX ");
    sql.append("FROM ");
    sql.append("    STUDENT ");
    sql.append("WHERE ");
    sql.append("    ID IN :STUID ");

    // 創建Query
    Query query = entityManager.createNativeQuery(sql.toString(), Student.class);

    // 設置Query參數
    for (Entry<String, Object> entry : params.entrySet()) {
        query.setParameter(entry.getKey(), entry.getValue());
    }

    List<Student> result;

    try {
        // 執行Query
        result = query.getResultList();
    } catch (Exception e) {
        result = null;
    }

    return result;
}

【注】設置 IN 參數時,傳入參數須為 List 類型(占位符 :STUID 對應的參數為 list

 

Oracle查詢表構造

(1)查詢表的注釋信息:USER_TAB_COMMENTS

例:

SELECT * FROM USER_TAB_COMMENTS WHERE table_name='TEST_DEPT'

結果:

 

 

(2)查詢列的詳細信息:USER_TAB_COLUMNS

例:

SELECT * FROM USER_TAB_COLUMNS WHERE table_name='TEST_DEPT'

結果:

(該結果字段有點多,結果圖片只截取了前部分)

 

(3)查詢列的注釋信息:USER_COL_COMMENTS

例:

SELECT * FROM USER_COL_COMMENTS WHERE table_name='TEST_DEPT'

結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM