серверная хранимая процедура sql выглядит следующим образом:
CREATE PROCEDURE SelectStaff @rankabbr varchar(14), @sex varchar(1)
AS
SELECT * FROM staff WHERE rankabbr = @rankabbr AND sex = @sex
, и я могу успешно запустить ее в SSMS с помощью
exec SelectStaff 'AEO', 'M';
, но в eclipse я использую hibernate для вызова эта хранимая процедура выглядит следующим образом:
Session session2 = HibernateUtil.getCurrentSession();
org.hibernate.Query query = session2.createSQLQuery(" call SelectStaff(:rankabbr, :sex) ")
.setParameter("rankabbr","AEO")
.setParameter("sex", "M");
List<Object[]> results =query.list();
, но ошибка возвращается следующим образом:
23: 30: 57,708 WARN [org.hibernate.engine.jdb c .spi. SqlExceptionHelper] (задание по умолчанию-7) SQL Ошибка: 102, SQLState: S0001 23: 30: 57,741 ОШИБКА [org.hibernate.engine.jdb c .spi.SqlExceptionHelper] (задание по умолчанию-7) Неверный синтаксис рядом с ' @ P0 '.
в чем причина? Я попытался добавить {} в вызове как
org.hibernate.Query query = session2.createSQLQuery("{ call SelectStaff(:rankabbr, :sex) }")
.setParameter("rankabbr","AEO")
.setParameter("sex", "M");
, но ошибка та же.
Я пытаюсь заменить SQLServerDialect на SQLServer2012Dialect, но та же ошибка.