【问题标题】:Getting error --- Cannot perform fetch on a PLSQL statement: next出现错误 --- 无法对 PLSQL 语句执行提取:下一个
【发布时间】:2017-08-04 09:26:37
【问题描述】:

我已经编写了一个存储过程,以便在 spring 中使用 hibernate 插入到 oracle 中的表中。当我从 hibernate 调用该过程时插入的数据但我得到了以下错误

Cannot perform fetch on a PLSQL statement: next

程序

create or replace PROCEDURE INSERT_ITEM_TYPE(
   ITEM_TYPE_ID IN number ,
   TYPE_NAME         IN VARCHAR2 ,
    BN_NAME      IN VARCHAR2 ,
    CREATED_BY   IN NUMBER ,
    CREATED_ON   IN DATE ,
    UPDATED_BY   IN NUMBER ,
    UPDATED_ON   IN DATE ,
    IS_DELETED   IN NUMBER  )
AS
BEGIN
  INSERT
  INTO pg_item_type 
    (
      ITEM_TYPE_ID,
      ITEM_TYPE_NAME,
      BN_ITEM_TYPE_NAME,
      CREATED_BY,
      CREATED_ON,
      UPDATED_BY,
      UPDATED_ON,
      IS_DELETED
    )
    VALUES 

    (
    ITEM_TYPE_ID,
    TYPE_NAME,
    BN_NAME,
    CREATED_BY,
    CREATED_ON,
    UPDATED_BY,
    UPDATED_ON,
    IS_DELETED
    );


    commit;
END INSERT_ITEM_TYPE;

模型类

@Entity
@Table(name = "PG_ITEM_TYPE")
@NamedNativeQueries({
    @NamedNativeQuery(
    name = "insertyItemType",
    query = "CALL     INSERT_ITEM_TYPE(:id,:name,:bnName,:cretedBy,:createdOn,:updatedBy,:updatedOn,:isDeletd)",
    resultClass = GdItemType.class
    )
})

public class GdItemType {
.....
}

** DAO **

    @Override
        public void saveGdItemType(GdItemType gdItemType) {
            Session session = this.sessionFactory.getCurrentSession();
            //session.saveOrUpdate(gdItemType);
            Query query =  session.getNamedQuery("insertyItemType")
                    .setParameter("id", gdItemType.getItemTypeId())
                    .setParameter("name", gdItemType.getItemTypeName())
                    .setParameter("bnName", gdItemType.getBnItemTypeName())
                    .setParameter("cretedBy", gdItemType.getCreatedBy())
                    .setParameter("createdOn", gdItemType.getCreatedOn())
                    .setParameter("updatedBy", gdItemType.getUpdatedBy())
                    .setParameter("updatedOn", gdItemType.getUpdatedOn() )
                    .setParameter("isDeletd", gdItemType.getIsDeleted());
                    query.list();


        }

我卡在这里了。谁能帮帮我....

【问题讨论】:

    标签: java spring hibernate


    【解决方案1】:
    query.list() 
    

    希望将查询结果作为列表返回。您的过程没有任何“out”参数,因此查询不会返回结果以放入列表中。因此出现错误。

    【讨论】:

    • 您能否提供正确的程序格式以及是否需要对 dao 或模型类进行任何更改。@Robin Topper
    • @AbdullahAlMamun 如果您的程序只是需要将数据放入数据库中,那么它没有任何问题。不像我,你应该知道你的程序需要做什么,并且应该能够更好地纠正它(如果有必要的话)。
    猜你喜欢
    • 2013-10-26
    • 2015-06-14
    • 2021-08-06
    • 1970-01-01
    • 2012-02-10
    • 1970-01-01
    • 1970-01-01
    • 2019-04-10
    • 2015-10-07
    相关资源
    最近更新 更多