首页 > 解决方案 > 谁能解释一下 getNamedQuery 是如何工作的

问题描述

谁能帮我理解 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() ?是直接引用数据库吗?

标签: javasqlspringhibernatehql

解决方案


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

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


推荐阅读