Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用spring hibernate调用具有两个参数的存储过程_Java_Hibernate_Spring Mvc - Fatal编程技术网

Java 使用spring 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

请允许我使用Spring mvc Hibernate调用带有两个参数的存储过程

我的模型中的代码是

 @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,字符串[]参数名,对象[]值)非常感谢。解决了的!弗拉德·米哈尔恰的回答非常有用。。谢谢