使用命名参数从Hibernate调用存储过程

时间:2014-11-10 23:35:32

标签: java hibernate stored-procedures

我试图使用命名参数而不是位置参数,使用org.hibernate.procedure.ProcedureCall接口从Hibernate 4.3.5.Final调用MS SQL Server存储过程。我有这样的事情:

ProcedureCall call = session.createStoredProcedureCall(procedureName);
call.registerParameter("parameter1Name", Integer.class, ParameterMode.IN).bindValue(1);
call.registerParameter("parameter2Name", Integer.class, ParameterMode.IN).bindValue(2);
call.getOutputs();

但我最终得到了这个:

{call procedure_name (1, 2)};

而不是:

{call procedure_name (@parameter1Name = 1, @parameter2Name = 2)};

请注意,没有参数名称,参数完全按照指定的顺序排列 NamedParameterRegistration继承自AbstractParameterRegistrationImpl并且不会覆盖prepare()。对于模式为IN或INOUT的参数,调用

typeToUse.nullSafeSet( statement, bind.getValue(), startIndex, session() );

它只是将参数绑定为有序参数。

我有什么遗失的东西,或者现在这件事刚刚破裂了吗?

0 个答案:

没有答案