Как получить значение выходного параметра в данных весны JPA с MySQL, хранимой процедуры - PullRequest
0 голосов
/ 27 сентября 2018

Я пытался вызвать хранимый процесс mysql из репозитория jpa данных весны.

Сохраненный процесс MySQL:

CREATE PROCEDURE `test`(
    IN `id` INT,
    OUT `op` INT
)
BEGIN
SET op = 100;
select @op;
END

Примечание: если я неt указать "select @op;"Я ничего не получаю.

Объявление NamedStoredProcedureQueries в классе сущности:

@NamedStoredProcedureQueries({
    @NamedStoredProcedureQuery(name = "test", procedureName = "test", parameters = {
            @StoredProcedureParameter(mode = ParameterMode.IN, name = "id", type = Integer.class),
            @StoredProcedureParameter(mode = ParameterMode.OUT, name = "op", type = Integer.class) }) })

Метод репозитория:

@Procedure(name = "test")
Integer callTestSP(@Param("id") Integer id);

Я получаю значение как NULL.

Запросы из журнала:

Query   CALL test(8,0,0,0,@com_mysql_jdbc_outparam_op)
Query   SELECT @com_mysql_jdbc_outparam_op

из журналов Я понял, что пружинные данные jpa используют псевдоним в качестве "@com_mysql_jdbc_outparam_op" для выходной переменной, но mysql сохранял proc, возвращая другой.В результате я получаю NULL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...