При вызове хранимой процедуры с помощью jpa 2.x выдается invalidArgumentException - PullRequest
0 голосов
/ 29 марта 2019

У меня есть следующая процедура на моем сервере mssql, которую я хочу выполнить из своего кода Java

DECLARE @RC int
DECLARE @newUid bigint

EXECUTE @RC = [TEST_DB].[foobar].[getNextUid] @newUid OUTPUT

В моем коде я определил сущность и использую аннотацию NamedStoredProcedureQuery для ее определения

@Entity
@NamedStoredProcedureQuery(
    name = "foobar.getNextUid",
    procedureName = "foobar.getNextUid",
    parameters = {
        @StoredProcedureParameter(mode = ParameterMode.OUT, type = Long.class, name = "newUid")
    }
)

Когда я вызываю эту хранимую процедуру в моем тесте, она выдает исключение

java.lang.IllegalArgumentException: No @NamedStoredProcedureQuery was found with that name : foobar.getNextUid

Я также пробовал с именованием параметра в моей аннотации как @ newUid

Вот мойTestcase

EntityManager entityManager = managerEntityManagerFactory.createEntityManager();
entityManager.getTransaction().begin();
StoredProcedureQuery query = entityManager.createNamedStoredProcedureQuery("foobar.getNextUid");
query.setParameter("@newUid", 1);
long nextUid = (long) query.getOutputParameterValue("newUid");

entityManager.getTransaction().commit();
entityManager.close();

1 Ответ

0 голосов
/ 29 марта 2019

попробуйте заменить query.getOutputParameterValue ("@ newUid");by query.getOutputParameterValue ("newUid");

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