无法删除Springs MVC Hibernate项
我正试图通过spring mvc删除一个条目,但我无法执行。我收到无法删除Springs MVC Hibernate项,hibernate,spring-mvc,Hibernate,Spring Mvc,我正试图通过spring mvc删除一个条目,但我无法执行。我收到404错误,说明未找到请求的资源 我的控制器代码是 @RequestMapping("/delete/{user_id}") public ModelAndView deleteUser(@PathVariable("user_id")Integer user_id){ userService.removeUser(user_id); return new ModelAndView("red
404
错误,说明未找到请求的资源
我的控制器代码是
@RequestMapping("/delete/{user_id}")
public ModelAndView deleteUser(@PathVariable("user_id")Integer user_id){
userService.removeUser(user_id);
return new ModelAndView("redirect:/userList.html");
}
它将进入UserService
并从那里进入userserviceinpl
,然后从那里进入UserDao
到UserDaoImpl
,其代码是
public void removeUser(Integer user_id){
User user = (User) sessionfactory.getCurrentSession().load(
User.class, user_id);
if (null != user) {
sessionfactory.getCurrentSession().delete(user);
System.out.println("Successfully deleted");
}
我在属性文件中执行了一个
hibernate.show_sql=true
int,但对于delete,我得到了一个select
语句。将delete代码与事务打包:
Session session = sessionFactory.getCurrentSession();
Transaction t = session.beginTransaction();
User user = (User) session.load(User.class, user_id);
if (null != user) {
session.delete(user);
System.out.println("Successfully deleted");
}
session.flush();
t.commit()
如果出现404错误,很可能是请求映射有问题。尝试将行断点放在“deleteUser”方法的第一行,在调试模式下运行服务器并执行删除请求。若调试器停止应用程序执行,并且您可以执行调试,那个么问题就在代码中的某个地方。如果没有停止-在您的请求和“deleteUser”方法执行之间没有映射是的,您是对的,并且存在一些问题。由于我还是一个新手,请您指导我。您如何执行删除请求?via或via?在浏览器的地址栏中显示的应用程序欢迎页面的URL是什么?当您获得404时,浏览器地址栏中显示的URL是什么?我的猜测是,您忘记了预先设置应用程序的上下文路径。向我们展示您如何生成URL。我刚刚在web.xml中做了一些更改,并将*.html更改为/。现在它可以工作了,但问题是数据没有被删除。问题是它仍然在执行select而不是delete。真是太棒了……您能解释一下您更改的早期代码中出现了什么错误吗?实体对象可能有几个错误状态:瞬时、持续、分离。若要删除对象,它必须处于持久(附加到会话)状态。在对象获取实体未处于持久状态(处于分离状态)后打开事务时。所以我们必须获取并删除一个事务范围内的对象,才能使对象处于持久状态。由于初始代码中的某些原因(可能是因为错误的事务管理),在执行delete method时,用户会分离。为了实现正确的事务管理,我建议您使用@Transactional spring注释: