Назначение NamedStoredProcedureQuery во время выполнения - PullRequest
1 голос
/ 26 июня 2019

У меня есть хранимые процедуры, которые необходимо вызвать для выполнения операции.Однако для каждой операции я сохранял имя хранимой процедуры в базе данных.Таким образом, во время выполнения на основе имени операции я буду вызывать хранимую процедуру назначения.

Вопрос: 1. Как установить имя NamedStoredProcedureQuery во время выполнения?

Я использую SpringJPA с загрузкой Spring.

@NamedStoredProcedureQueries({
        @NamedStoredProcedureQuery(
                name = "sptest",
                procedureName = "usp_helper_test",
                resultClasses = {Config.class},
                parameters = {
                        @StoredProcedureParameter(
                                name = "data",
                                type = String.class,
                                mode = ParameterMode.IN)
                })
})

В этом примере выше я хочу установить имя_процесса во время выполнения.

1 Ответ

1 голос
/ 26 июня 2019

Если мы игнорируем такие вещи, как генерация байт-кода: вы не можете. Именованные хранимые процедуры получают свое имя из аннотаций, которые вы указали в вопросе.

Конечно, вы все равно можете использовать либо EntityManager, либо JDBC (возможно, через JdbcTemplate) для вызова хранимых процедур по имени, которое они имеют в базе данных.

С EntityManager вы бы вызвали EntityManager.createStoredProcedureQuery в одном из его вариантов.

Для подхода JdbcTemplate вы можете обратиться к этому SO-ответу .

Код, который вам нужно написать, будет идти в реализации пользовательского метода .

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