【问题标题】:how to pass parameters to a stored procedure using @NamedNativeQuery in spring hibernate如何在spring hibernate中使用@NamedNativeQuery将参数传递给存储过程
【发布时间】:2014-07-12 15:13:39
【问题描述】:

我有一个带有参数@id的过程,我也在spring hibernate中调用@NamedNativeQuery,我想知道如何在@NamedNativeQuery的查询属性中传递过程中的参数

我的代码如下所示。

@NamedNativeQuery(name = "Callmyprocedure", query="{CALL sampleprocedure :id}", callable =true, resultClass = Subscriber.class)

其中 id 是我的过程参数,但它不起作用。

【问题讨论】:

    标签: java spring hibernate stored-procedures


    【解决方案1】:

    看看这个:

    @Entity  
    @NamedNativeQuery(name = "SampleNameQuery",query = "call spS_NamedQuery(?,?)",resultSetMapping="mapping",resultClass = NamedQuery.class)  
    @SqlResultSetMapping(name="mapping",columns=@ColumnResult(name="value"))        
    public class NamedQuery {  
    
     @Id  
     public String name;  
    
     @Column  
     public String value;  
    }  
                    . . . . 
    

    然后你像这样传递参数:

     Transaction trx = null;  
      Session session = HibernateSessionFactory.getSession();  
      try {  
       trx = session.beginTransaction();  
    
       org.hibernate.Query query = session.getNamedQuery("SampleNameQuery");  
       query.setParameter(0,"fsdfsdf");         
       String value = "";  
       query.setParameter(1,value);         
       List objList = query.list();      
       trx.commit();  
    

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-05
      • 1970-01-01
      • 1970-01-01
      • 2015-01-02
      • 1970-01-01
      相关资源
      最近更新 更多