JPA Query查询语句实现SQL中IN的参数设置 以及 Oracle表结构查询

本文介绍了如何在JPA中使用createNativeQuery()进行SQL查询,特别是涉及IN条件的设置,强调参数需为List类型。同时,展示了如何查询Oracle数据库的表注释(USER_TAB_COMMENTS)、列详细信息(USER_TAB_COLUMNS)和列注释(USER_COL_COMMENTS)。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

工作中使用到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'

结果:

 

转载于:https://www.cnblogs.com/cn9087/p/10515191.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值