MS SQL Server 2012'de Hibernate'te namedQueries kullanmak için bir POC deniyorum ve aşağıdaki Reminder.hbm.xml
yapılandırmamda yapılandırdım. * .hbm.xml dosyasında bildirilen bir namedQuery aracılığıyla bir SP çalıştırılamıyor
<hibernate-mapping>
<class name="com.reminder.hibernate.model.Reminder" table="Reminders">
...
...
</class>
<sql-query name="fetchDOBsBasedOnDate">
<return alias="reminder" class="com.reminder.hibernate.model.Reminder"/>
<![CDATA[EXEC FetchDOBsBasedOnDate(:birthDate)]]>
</sql-query>
</hibernate-mapping>
ve böyle bir Java sınıfından yukarıda adı sorgu çağırmak çalışıyorum:
Query query = session.getNamedQuery("fetchDOBsBasedOnDate").setDate("birthDate", new Date(new java.util.Date().getTime()));
//Used java.sql.Date above
ardından ben I gibi bir saklı yordam koydum tek bir SQL ifadesini olduğunu sorguyu kendisi çalıştıramadı, burada saklı yordamın kodu.
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE FetchDOBsBasedOnDate
@InputDate DATETIME
AS
BEGIN
SET NOCOUNT ON;
SELECT * FROM Reminders WHERE DATEADD(year, DATEDIFF(year, BirthDate, @InputDate), BirthDate) = @InputDate
END
GO
Sorun, nerede SP eser olarak tamamen hazırda ile bu SP yürütülürken bir hata alıyorum olmasıdır. Benim konsolda bkz Hata:
Hibernate: EXEC FetchDOBsBasedOnDate(?)
1 Apr, 2016 3:48:14 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
WARN: SQL Error: 102, SQLState: S0001
1 Apr, 2016 3:48:14 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: Incorrect syntax near '@P0'.
DÜZENLEME: Parantez kurtulduktan sonra SQL sözdizimi hataları baskılanır ama hala sonuç alamıyorum.
öneriniz SQL sözdizimi hatasını bastırmama yardımcı oldu, ancak hala Hazırda Bekletme Yöntemini kullanarak Hazırda Beklet işlemini yürütemiyorum ... :( –
Sorunuzu, hata iletilerini de içeren güncel sorunlarınızı yansıtacak şekilde değiştirmelisiniz. Çalışmıyor, vb. –
Saklı yordamımı tek başına bir istemcide denedim ve mükemmel çalışıyor, ancak hazırda bekletmeye çalıştığımda bir sonuç vermiyor.! –