我需要在我的存储库中使用Spring注释@Procedure
来调用Oracle存储过程,如下所示:
@Procedure(name = "SECURITE.P_MAJ_DROITFAM")
public void updateDroitFamille (@Param("v_id_fam") Long idFamille,@Param("v_action_type") Integer cas,@Param("v_user") String userName);
错误日志:
Hibernate:{call updateDroitFamille (?,?,?)} 15:46:39,946 - ERROR - SqlExceptionHelper.logExceptions:146 - ORA-06550:第1行, 第7栏:PLS-00201:标识符' UPDATEDROITFAMILLE'一定是 声明
但是程序名称 P_MAJ_DROITFAM 而不是 updateDroitFamille
问题是程序名称在执行期间已被更改!!?任何想法?
答案 0 :(得分:2)
您需要做的是在您的某个实体上添加其他配置,首先在应用程序中声明您的过程定义:
@NamedStoredProcedureQuery(name = "P_MAJ_DROITFAM", procedureName = "SECURITE.P_MAJ_DROITFAM", parameters = {
@StoredProcedureParameter(mode = ParameterMode.IN, name = "v_id_fam", type = Long.class),
@StoredProcedureParameter(mode = ParameterMode.IN, name = ""v_action_type", type = Integer.class) },
@StoredProcedureParameter(mode = ParameterMode.IN, name = ""v_user", type = Integer.class) })
public class MyEntity{
然后在存储库中,您可以调用:
@Procedure(name = "P_MAJ_DROITFAM")
public void updateDroitFamille (@Param("v_id_fam") Long idFamille,@Param("v_action_type") Integer cas,@Param("v_user") String userName);
您可以保留方法的名称。