我有问题。我想添加选项,管理员用户可以删除用户帐户而不能删除管理员帐户,但我不能这样做。我试着这样做
@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。
答案 0 :(得分:0)
首先,如果您搜索该错误,您会发现大量关于原因的文章和可能的解决方案,所以我不打算解释它。
最快的修复但不一定是最好的是将@OneToMany从用户标记为角色为EAGER。
另一种方法是将支票委托给您的服务层并从此处抛出异常。
@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";
}
}
其他解决方案可用。