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
Spring rg.hibernate.QueryException:未设置所有命名参数:[id][DELETE FROM User其中User_id=:id]_Spring_Hibernate - Fatal编程技术网

Spring rg.hibernate.QueryException:未设置所有命名参数:[id][DELETE FROM User其中User_id=:id]

Spring rg.hibernate.QueryException:未设置所有命名参数:[id][DELETE FROM User其中User_id=:id],spring,hibernate,Spring,Hibernate,我正在使用spring和hibernate制作一个Q和a站点,我在删除一个用户时遇到了错误。。。。 错误状态为。。。 rg.hibernate.QueryException:未设置所有命名参数:[id][DELETE FROM User其中User_id=:id] 这个错误已经解决了,现在我的代码是 控制器 @RequestMapping(value = "/delete", method = RequestMethod.GET) public ModelAndView deleteUser(@

我正在使用spring和hibernate制作一个Q和a站点,我在删除一个用户时遇到了错误。。。。 错误状态为。。。 rg.hibernate.QueryException:未设置所有命名参数:[id][DELETE FROM User其中User_id=:id]

这个错误已经解决了,现在我的代码是

控制器

@RequestMapping(value = "/delete", method = RequestMethod.GET)
public ModelAndView deleteUser(@RequestParam("id") int user_id ) {
        userservice.deleteUser(user_id);
    return new ModelAndView("jsp/AdminUsers");

}
D A O

public void deleteUser(int user_id) {  
    User user = (User) sessionFactory.getCurrentSession().load(User.class, user_id);
    if(null!=user){
        sessionFactory.getCurrentSession().delete(user);
    }
}  
服务

 public void deleteUser(int user_id) {  
        userDao.deleteUser(user_id);  
    } 
查看网页URL

/delete.html?id=${user.user_id}"

我猜您得到的错误是因为您正在运行
createQuery(“从用户那里删除用户id=:id”)
executeUpdate
而没有绑定
:id
参数。创建后,设置
id
参数,然后执行
executeUpdate
。此外,无需执行查询和以下
delete

试试这个:

Query query = sessionFactory.getCurrentSession().createQuery("DELETE FROM User WHERE user_id =:id ");
query.setInteger("id", userId);
query.executeUpdate();

为什么要同时运行
createQuery/executeUpdate
delete
?那么应该怎么做,先生?您仍然没有设置查询的id。检查我的更新答案。类型查询的方法setInteger(String,int)未定义。使用..解决changeerror时会显示此错误@RequestMapping(value=“/delete”,method=RequestMethod.GET)公共模型和视图deleteUser(@RequestParam(“id”)int user_id){userservice.deleteUser(user_id);返回新模型和视图(“jsp/AdminUsers”);}作为控制员,我建议您使用有效的代码更新问题。这本书很难读懂。