【问题标题】:Can anyone please explain how getNamedQuery works谁能解释一下 getNamedQuery 是如何工作的
【发布时间】:2019-03-03 17:01:44
【问题描述】:

谁能帮我理解 getNamedQuery 的工作原理吗?

    if(requestObj.getUpdateType().equalsIgnoreCase("U"))
        {
            if(logger.isDebugEnabled())
                logger.debug("Inside update");

            Query query = session.getNamedQuery("updateId");

            query.setParameter("id", requestObj.getId());
            query.setParameter("name", requestObj.getName());
            query.setParameter("createDate", requestObj.getCreateDate());

            int result=query.executeUpdate();

            if(result>=1){
                if(logger.isInfoEnabled())
                    logger.info("Data Updated for "requestObj.getId());
            }else{
                if(logger.isInfoEnabled())
                    logger.info("No data found for provided Id "+requestObj.getId()");
            }
    }

我有一个 csv 文件,我们需要从中读取数据并更新/插入数据库,csv 文件的第一列是 updatetype。如果更新类型为“U”,则表示需要更新数据库中的数据。 'requestObj' 是我的 POJO 类的对象

Query query = session.getNamedQuery("updateId"); 中的“updateId”是什么? “id”中的 id 是什么,requestObj.getId() ?是直接引用数据库吗?

【问题讨论】:

    标签: java sql spring hibernate hql


    【解决方案1】:

    如果您使用的是 Hibernate,getNamedQuery(query) 返回一个在 XML 配置文件中定义的 JPA 查询。 “updateId”只是该查询的名称。

    我不知道 requestObj 的类型,但我假设 getId() 返回其唯一标识符。

    【讨论】:

    • “updateId”有什么用?在 (query.setParameter("id", requestObj.getId());) 行中“id”的意义何在,请您详细说明
    • 我不知道“updateId”的用途,因为我不知道配置文件的内容。我想它的名字是一个查询,它通过它的 id 更新对象。 “id”表示您正在使用 requestObj 的 id 设置查询参数“id”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-27
    • 1970-01-01
    相关资源
    最近更新 更多