Можно ли сопоставить объект со всеми параметрами внутри NamedStoredProcedureQuery
? Мне нужно вызвать хранимую процедуру, которая содержит более 40 параметров, которые она принимает. Следующий код становится действительно длинным и трудным для чтения:
@NamedStoredProcedureQuery(
name="SomeSPName",
procedureName="SomeSPName",
resultClasses={ MyEntity.class },
parameters = {
@StoredProcedureParameter(name="PACKAGE", type=String.class, mode=ParameterMode.IN),
@StoredProcedureParameter(name="APPNM", type=String.class, mode=ParameterMode.IN),
// 40 more required parameters here...
)
public interface MyRepository extends JpaRepository<MyEntity, Long> {
@Query
@Procedure(name="SomeSPName")
long getResult(@Param("PACKAGE") String package, @Param("APPNM") String appnm, /* The rest of the params here */);
}
Поэтому мой вопрос заключается в том, могу ли я заменить аргументы внутри getResult
с объектом, который имеет все методы получения и установки параметров, и Hibernate автоматически назначит параметры правильно. Например:
public interface MyRepository extends JpaRepository<MyEntity, Long> {
@Query
@Procedure(name="SomeSPName")
long getResult(MyObject params);
}
Здесь MyObject
будет иметь поля, соответствующие каждому из StoredProcedureParameter
, определенных сверху. Надеюсь, это имеет смысл. Я просто не хочу помещать все 40+ параметров в определение getResult
. Я использую DB2, если это имеет значение. Любая помощь будет оценена!