2015-05-26 269 views
-2

我有一個問題。我想添加選項,其中管理員用戶可以刪除用戶帳戶,不能刪除管理員帳戶,但我不能這樣做。我試圖這樣做春季休眠問題

@RequestMapping("/adminRemoveUser/{id}") 
    public String removeUser(@PathVariable("id") int id){ 
     if(this.userService.getUserById(id).getUserRole().contains("ROLE_ADMIN")){ 
      return "errorDeleteUser"; 
     } 
     else{ 
      this.userService.removeUser(id); 
      if(this.userService.getPage(pageNumber).size()==0) 
       pageNumber--; 
      return "redirect:/adminuserspage="+pageNumber; 
     } 
} 

但它不起作用。請幫忙;)

這裏是link到回購。

+3

你是什麼意思不起作用? – shruti1810

+0

將'contains'改爲'equals' ...可能有幫助 –

+0

我也用過equals。這是同樣的問題。應用程序拋出異常NestedServletException 它返回設置 –

回答

0

首先,如果你搜索這個錯誤,你會發現很多關於原因和可能的解決方案的文章,所以我不打算解釋它。

最快的修復方法,但不一定是最好的方法是將@OneToMany從用戶角色標記爲EAGER。

另一種方法是將支票委託給服務層,並從此處拋出一個Exception。

@RequestMapping("/adminRemoveUser/{id}") 
public String removeUser(@PathVariable("id") int id){ 

    try{ 
     userService.removeUser(id); 

     if(userService.getPage(pageNumber).size() == 0){ 
      pageNumber--; 
     } 

     return "redirect:/adminuserspage="+pageNumber; 
    } 
    catch(SomeException ex){ 
     return "errorDeleteUser"; 
    } 

} 

其他解決方案可用。

+0

IllegalOperationException不能被解析爲一個類型 –

+0

你可以創建或使用用途一些現有的Exception類型可能是合適的。 UnsupportedOperationException異常? http://docs.oracle.com/javase/7/docs/api/index.html?java/lang/Exception.html –

+0

它不工作就像我想要的。好。這是必要的。謝謝你的幫助 ;) –