【问题标题】:Hibernate JPA stored procedure call?Hibernate JPA 存储过程调用?
【发布时间】:2014-10-15 11:26:53
【问题描述】:

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

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

如何调用这个存储过程?

【问题讨论】:

    标签: java database hibernate jpa stored-procedures


    【解决方案1】:

    查看this SO question:

    1. 首先你定义一个名为native query的存储过程:

      @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") })
      
    2. 然后你使用:

      TypedQuery<Long> query = entityManager.createNamedQuery("call_proc_ab", Long.class); 
      query.setParameter("cmpid",cmpid); 
      query.setParameter("status",status); 
      Long empId = query.getSingleResult(); 
      

    【讨论】:

    • 感谢您的回复。我应该在哪里放置名为本机查询的存储过程?我的意思是在 XML 文件中?
    • 查看SO question
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-30
    • 2019-10-22
    • 1970-01-01
    • 1970-01-01
    • 2011-04-10
    • 1970-01-01
    • 2017-11-09
    相关资源
    最近更新 更多