2016-06-30 4 views
0

curently私は私のプロジェクトでMS SQL 2008でHibernateを使用しています。 私は、休止状態でストアドプロシージャを実行しようとしています。MS SQLストアドプロシージャでHibernate

SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
ALTER PROCEDURE [dbo].[GetUserDetails] (@userId int) 
AS 
BEGIN 
    SELECT * FROM dcf_user_m WHERE nuserid = @userId; 
END 

Exec dbo.GetUserDetails @userId=14 

以下は実行のために休止状態コードです: は以下のSPです。

Session session = transactionManager.getSessionFactory().getCurrentSession(); 
     Transaction transaction = session.getTransaction(); 
     if(!transaction.isActive()){ 
      session.beginTransaction(); 
     } 

     Query query = session.createSQLQuery("Exec dbo.GetUserDetails @userId=:userId").setParameter("userId", 14);   
      List result = query.list(); 

      for(int i=0; i<result.size(); i++){ 
       com.majesco.msig.entity.UserInfo user = (com.majesco.msig.entity.UserInfo)result.get(i); 
       System.out.println(user.getUsername()); 
      } 

on query.list()以下のエラーが発生しています。

INFO: Reloading Context with name [/msig] is completed 
Hibernate: Exec dbo.GetUserDetails @userId=? 
org.hibernate.MappingException: No Dialect mapping for JDBC type: -9 
    at org.hibernate.dialect.TypeNames.get(TypeNames.java:76) 
    at org.hibernate.dialect.TypeNames.get(TypeNames.java:99) 
    at org.hibernate.dialect.Dialect.getHibernateTypeName(Dialect.java:592) 

この問題を解決するには、どうすれば助かりますか。前もって感謝します !!!

答えて

0

別の推測:-)は、エンティティ情報from here撮影

Query query = session 
    .createSQLQuery("Exec dbo.GetUserDetails @userId=:userId") 
    .addEntity(UserInfo.class) 
    .setParameter("userId", 14);   

に追加してみてください。

+0

返信ありがとうございましたが、これと同じエラーが発生しました... –

+0

私は別の提案をしていますが、私は恐れています。 –

関連する問題