Spring rg.hibernate.QueryException:未设置所有命名参数:[id][DELETE FROM User其中User_id=:id]
我正在使用spring和hibernate制作一个Q和a站点,我在删除一个用户时遇到了错误。。。。 错误状态为。。。 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(@
@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”);}作为控制员,我建议您使用有效的代码更新问题。这本书很难读懂。