JPA Query查詢語句實現(xiàn)SQL中IN的參數(shù)設置 以及 Oracle表結(jié)構(gòu)查詢
工作中使用到JPA查詢數(shù)據(jù)庫,遇到 createNativeQuery() 語句設置 SQL 中 IN 的查詢條件,以此文記錄。
例子:
public List<Student> getStuInStuIds(List list) { // 用于拼接SQL StringBuilder sql = new StringBuilder(); // 設置參數(shù)集 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 "); // 創(chuàng)建Query Query query = entityManager.createNativeQuery(sql.toString(), Student.class); // 設置Query參數(shù) for (Entry<String, Object> entry : params.entrySet()) { query.setParameter(entry.getKey(), entry.getValue()); } List<Student> result; try { // 執(zhí)行Query result = query.getResultList(); } catch (Exception e) { result = null; } return result; }
【注】設置 IN 參數(shù)時,傳入?yún)?shù)須為 List 類型。(占位符 :STUID 對應的參數(shù)為 list)
Oracle查詢表構(gòu)造
(1)查詢表的注釋信息:USER_TAB_COMMENTS
例:
SELECT * FROM USER_TAB_COMMENTS WHERE table_name='TEST_DEPT'
結(jié)果:

(2)查詢列的詳細信息:USER_TAB_COLUMNS
例:
SELECT * FROM USER_TAB_COLUMNS WHERE table_name='TEST_DEPT'
結(jié)果:

(該結(jié)果字段有點多,結(jié)果圖片只截取了前部分)
(3)查詢列的注釋信息:USER_COL_COMMENTS
例:
SELECT * FROM USER_COL_COMMENTS WHERE table_name='TEST_DEPT'
結(jié)果:


浙公網(wǎng)安備 33010602011771號