gpt4 book ai didi

java - 使用 Spring Data 在执行期间更改了存储过程名称

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:12:32 25 4
gpt4 key购买 nike

我需要在我的存储库中使用 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: Line 1, column 7: PLS-00201: The identifier 'UPDATEDROITFAMILLE' must be declared

但过程名称是 P_MAJ_DROITFAM 而不是 updateDroitFamille
问题是程序名称在执行过程中被更改了!!?有什么想法吗?

最佳答案

您需要做的是对您的一个实体进行额外的配置,首先在应用程序中声明您的过程的定义:

@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);

您可以保留方法的名称。

关于java - 使用 Spring Data 在执行期间更改了存储过程名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41855080/

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