Ниже приведены вызовы кода
Код: Выделить всё
procedurequery = entityManager.createNamedStoredProcedureQuery("UserManagementUsersReportModel.generate");
procedurequery.setParameter("START_DATE", formattedStartDate);
procedurequery.setParameter("END_DATE", formattedEndDate);
procedurequery.setParameter("DEF", parameters.get("def"));
procedurequery.setParameter("ABC", parameters.get("abc"));
List ReportList = procedurequery.getResultList();
Код: Выделить всё
@NamedStoredProcedureQuery(
name = "Report.generate",
procedureName = "REPORT",
parameters = {
@StoredProcedureParameter(mode = ParameterMode.IN, name = "CREATED_START_DATE", type = String.class),
@StoredProcedureParameter(mode = ParameterMode.IN, name = "CREATED_END_DATE", type = String.class),
@StoredProcedureParameter(mode = ParameterMode.IN, name = "DEF", type = String.class),
@StoredProcedureParameter(mode = ParameterMode.IN, name = "ABC", type = String.class),
},
resultClasses = Report.class
)
Параметр: ABC, Значение: null
Параметр: CREATED_START_DATE, значение: 15 мая 05
Параметр: DEF, значение: 1,2,79
Параметр: CREATED_END_DATE, значение: 24 мая 08
Ниже приведен запрос, который я использую в хранимой процедуре
Код: Выделить всё
SET @SqlQuery = '
SELECT ulv.*, cau.CREATED_BY, cau.CREATED_DATE from CORE.DEF ulv
left join CORE.ABC cau
on cau.id = ulv.id
where
'
IF @DEF IS NOT NULL
BEGIN
SET @SqlQuery = @SqlQuery + ' ulv.id IN (' + REPLACE(@DEF, ',', ',') + ')';
END
IF @ABC IS NOT NULL
BEGIN
SET @SqlQuery = @SqlQuery + ' AND cau.abc IN (' + REPLACE(@ABC, ',', ',') + ')';
END
Невозможно понять, что не так с параметрами запроса, они дают результат из dbeaver, а не из кода
Подробнее здесь: https://stackoverflow.com/questions/784 ... -code-call
Мобильная версия