Spring Hibernate的问题

时间:2015-05-26 10:45:58

标签: java spring hibernate

我有问题。我想添加选项,管理员用户可以删除用户帐户而不能删除管理员帐户,但我不能这样做。我试着这样做

@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

1 个答案:

答案 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";
    }

}

其他解决方案可用。