2015-05-26 27 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

它不工作就像我想要的。好。这是必要的。谢谢你的帮助 ;) –