gpt4 book ai didi

mysql - 如何使用hibernate实体管理器在spring boot中调用带有输出参数的MySQL存储过程

转载 作者:行者123 更新时间:2023-11-29 15:44:17 25 4
gpt4 key购买 nike

我正在尝试使用 Hibernate createNativeQuery 方法来调用不带参数的存储过程。有没有办法实现使用setParameter方法传递参数?

最佳答案

     @PersistenceContext 
private EntityManager entitymanager;
@Override
public String function(int id, int emp_id, String letype, String days, Date fromdate, Date todate, String reason,
String backup, int user_id) {

//Session session = entitymanager.unwrap(Session.class);

StoredProcedureQuery applyLeave = entitymanager.createStoredProcedureQuery("sp_apply_leave");

applyLeave.registerStoredProcedureParameter("p_id", Integer.class, ParameterMode.IN)
.registerStoredProcedureParameter("p_emp_id", Integer.class, ParameterMode.IN)
.registerStoredProcedureParameter("p_letype", String.class, ParameterMode.IN)
.registerStoredProcedureParameter("p_days", String.class, ParameterMode.IN)
.registerStoredProcedureParameter("p_fmdate", Date.class, ParameterMode.IN)
.registerStoredProcedureParameter("p_todate", Date.class, ParameterMode.IN)
.registerStoredProcedureParameter("p_reason", String.class, ParameterMode.IN)
.registerStoredProcedureParameter("p_backper", String.class, ParameterMode.IN)
.registerStoredProcedureParameter("p_user_id", Integer.class, ParameterMode.IN)
.registerStoredProcedureParameter("error_msg", String.class, ParameterMode.INOUT);


applyLeave.setParameter("p_id", id);
applyLeave.setParameter("p_emp_id" , emp_id);
applyLeave.setParameter("p_letype" , letype);
applyLeave.setParameter("p_days" , days);
applyLeave.setParameter("p_fmdate" , fromdate);
applyLeave.setParameter("p_todate" , todate);
applyLeave.setParameter("p_reason" , reason);
applyLeave.setParameter("p_backper" , backup);
applyLeave.setParameter("p_user_id" , user_id);
applyLeave.setParameter("error_msg", new String("error_msg"));
//applyLeave.executeUpdate();

String error_msg = (String) applyLeave.getOutputParameterValue("error_msg");
return error_msg;

}

关于mysql - 如何使用hibernate实体管理器在spring boot中调用带有输出参数的MySQL存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57247891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com