Вызов функции MS SQL из JPA - PullRequest
       24

Вызов функции MS SQL из JPA

0 голосов
/ 21 февраля 2019

У меня есть функция в MS SQL, например:

CREATE FUNCTION FOO (@param1 int,@param2 int)
RETURNS table
AS
    RETURN (SELECT a, b, c
            FROM MyTable
            WHERE p = @param1
              AND (@param2 IS NULL
                OR x = @param2));

И класс сущностей, например:

    @Entity
    @SqlResultSetMappings=(value={
       @SqlResultSetMapping(
          name="fooMapping"
          classes=@ConstructorResult(
             targetClass=Foo.class,
             columns= {
                @ColumnResult(name="a", type=Long.class),
                @ColumnResult(name="b", type=Long.class),
                @ColumnResult(name="c", type=Long.class)}
          )
@NamedNativeQuery(
  name="getFoos",
  query="CALL FOO(:param1, :param2) ORDER BY c",
  resultSetMappings="fooMapping",
  callable=true)
public class Foo {
   ...
}

Когда я пытаюсь вызвать функцию с помощью:

TypedQuery<Foo> query = em.createNamedQuery("getFoos", Foo.class);
query.setParameter("param1", param1);
query.setParameter("param2", null);
List<Foo> result = query.getResultList();

Тогда я получаю SQLServerException:

Неверный синтаксис рядом с'@P0'.

Что я делаю не так?

Спасибо взаранее за вашу помощь.

...