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'

结果:

 

posted @ 2019-03-12 10:46  hrvy  阅读(9295)  评论(0编辑  收藏  举报