一尘不染

HibernateJPA存储过程调用吗?

hibernate

我正在使用Hibernate JPA。我下面有Oracle存储过程。

    CREATEORREPLACEPROCEDURE PROC_AB
    (
          in_name VARCHAR2,
          in_lastname VARCHAR2,
          out_emp_id OUTINTEGER
    )

如何调用此存储过程?


阅读 212

收藏
2020-06-20

共1个答案

一尘不染

检查这个SO问题

  1. 首先,您定义名为本地查询的存储过程:
        @javax.persistence.NamedNativeQuery(name = "call_proc_ab", query = "{ call PROC_AB(:cmpid,:status,?) }", resultClass = Long.class, hints = {
    @javax.persistence.QueryHint(name = "org.hibernate.callable", value = "true") })
  1. 然后使用以下命令执行它:
        TypedQuery<Long> query = entityManager.createNamedQuery("call_proc_ab", Long.class); 
    query.setParameter("cmpid",cmpid); 
    query.setParameter("status",status); 
    Long empId = query.getSingleResult(); 
2020-06-20