我使用spring和hibernate创建一个Q和A站点,我在删除用户时遇到错误.... 错误说明...... rg.hibernate.QueryException:并未设置所有命名参数:[id] [DELETE FROM User WHERE 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);
}
查看网页网址...
/delete.html?id=${user.user_id}"
答案 0 :(得分:0)
我猜你得到的错误是因为你正在运行createQuery("DELETE FROM User WHERE user_id =:id ")
和executeUpdate
而没有绑定:id
参数。创建Query
后,设置id
参数,然后执行executeUpdate
。此外,无需同时执行查询和以下delete
。
试试这个:
Query query = sessionFactory.getCurrentSession().createQuery("DELETE FROM User WHERE user_id =:id ");
query.setInteger("id", userId);
query.executeUpdate();