Java 使用spring hibernate调用具有两个参数的存储过程
请允许我使用Spring mvc Hibernate调用带有两个参数的存储过程 我的模型中的代码是Java 使用spring hibernate调用具有两个参数的存储过程,java,hibernate,spring-mvc,Java,Hibernate,Spring Mvc,请允许我使用Spring mvc Hibernate调用带有两个参数的存储过程 我的模型中的代码是 @NamedNativeQuery(name="callprocLogin", query = "{CALL procLogin (:username, :password)}", callable = true, resultClass =SubscriberLogin.class) 我的刀法是 public SubscriberLogin getUserAndPassword(Strin
@NamedNativeQuery(name="callprocLogin", query = "{CALL procLogin (:username, :password)}", callable = true, resultClass =SubscriberLogin.class)
我的刀法是
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);
}
public SubscriberLogin getUserAndPassword(字符串用户名,字符串密码){
//使用存储过程
List param=new ArrayList();
参数添加(用户名);
参数添加(密码);
List=null;
list=getHibernateTemplate().findByNamedQueryAndNamedParam(“callprocLogin”,“用户名,密码”,param);
返回列表。获取(0);
}
请问我哪里弄错了?
谢谢。您的问题与如何发送参数有关 而不是:
list = getHibernateTemplate().findByNamedQueryAndNamedParam("callprocLogin", "username,password", param);
你应该:
list = getHibernateTemplate().findByNamedQueryAndNamedParam(
"callprocLogin",
new String[] {"username", "password"},
new Object[] {username, password}
);
上一次我浪费时间试图使用Nhibernate调用存储的进程,结果使用了ADO.NET。更简单,更容易理解。findByNamedQueryAndNamedParam(字符串queryName,字符串[]参数名,对象[]值)非常感谢。解决了的!弗拉德·米哈尔恰的回答非常有用。。谢谢