public String deleteUser() { if (selectedUser != null) { if (!"admin".equals(selectedUser.getLoginName())) { List<Account> accountList = accountService.getAllByUser(selectedUser); for (Account account : accountList) { account.setDestroy(true); account.setUser(null); accountService.updateAccount(account); } List<Topic> topicList = messageService.findByUser(selectedUser); for (Topic topic : topicList) { List<Message> messageList = messageService.findByTopic(topic); topic.setLastMessage(null); messageService.editTopic(topic); for (Message message : messageList) { message.setSender(null); message.setTopic(null); messageService.removeMessage(message); } messageList.clear(); messageService.removeTopic(topic); } topicList.clear(); userService.removeUser(selectedUser); selectedUser = new User(); return "listUser?faces-redirect=true"; } else { FacesContext.getCurrentInstance() .addMessage( null, new FacesMessage( FacesMessage.SEVERITY_INFO, "Deleting error", "This user has leaded projects or you tried to delete admin! >> nice try! ")); return "listUser?faces-redirect=false"; } } else { FacesContext.getCurrentInstance() .addMessage( null, new FacesMessage( FacesMessage.SEVERITY_INFO, "User has not selected", "You did not select any user!")); return "listUser?faces-redirect=false"; } }