2013-08-18 230 views
2

我想通過彈簧mvc刪除一個條目,但我無法做到這一點。我得到404錯誤,指出找不到請求的資源。無法刪除條目-Spring MVC休眠

我的控制器代碼是

@RequestMapping("/delete/{user_id}") 
    public ModelAndView deleteUser(@PathVariable("user_id")Integer user_id){ 
     userService.removeUser(user_id); 
     return new ModelAndView("redirect:/userList.html"); 
    } 

和其要去UserService,並從那裏它去UserServiceImpl並從那裏UserDaoUserDaoImpl,其代碼

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屬性文件,但仍然刪除我得到一個select聲明。

+0

如果你得到404錯誤,很有可能是你有一個請求映射問題。嘗試將行斷點放在「deleteUser」方法的第一行,以調試模式運行服務器並執行刪除請求。如果調試器停止應用程序執行,並且您可以執行調試 - 而不是代碼中的問題。如果沒有停止 - 你的請求和「deleteUser」方法執行之間沒有映射 – yname

+0

是的,你是對的,有一些問題,可以引導我,因爲我仍然是一個新手。 – Nilesh

+0

你如何執行刪除請求?通過 or via

? – yname

回答

1

裹刪除代碼與交易:

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() 
+0

問題是它仍然在執行select而不是delete。 – Nilesh

+0

查看更新的答案。試試這個代碼。 – yname

+0

真的很棒......你能解釋一下我之前的代碼出了什麼問題嗎? – Nilesh