使用spring hibernate使用两个参数调用存储过程

时间:2014-07-15 12:08:30

标签: java hibernate spring-mvc

请使用Spring mvc Hibernate

调用两个参数的存储过程

我模型中的代码是

 @NamedNativeQuery(name="callprocLogin", query = "{CALL procLogin (:username, :password)}",  callable = true, resultClass =SubscriberLogin.class)

我的DAO方法是

public SubscriberLogin getUserAndPassword(String username, String password) {   

    //Using Stored Procedure
    List<String> param = new ArrayList<String>();
    param.add(username);
    param.add(password);
    List<SubscriberLogin> list =null;
    list = getHibernateTemplate().findByNamedQueryAndNamedParam("callprocLogin", "username,password", param);       
    return list.get(0);
}

我在哪里弄错了? 感谢。

1 个答案:

答案 0 :(得分:0)

您的问题与发送参数参数的方式有关。

而不是:

list = getHibernateTemplate().findByNamedQueryAndNamedParam("callprocLogin", "username,password", param);

你应该:

list = getHibernateTemplate().findByNamedQueryAndNamedParam(
    "callprocLogin", 
    new String[] {"username", "password"}, 
    new Object[] {username, password}
);