В настоящее время я занимаюсь разработкой сайта социальной сети, и в настоящее время я реализую часть, в которой пользователь может изменить свой пароль. Я использую диспетчер объектов для обновления содержимого базы данных с новым паролем. Ниже приведен код реализации.Почему обновляемая база данных не обновляется при обновлении диспетчера объектов?
final Implementation user = em.find(Implementation.class, username);
if((user!=null) && user.getPassword().equals(hash(username,oldPassword))){
user.setPassword(hash(username,newPassword));
em.refresh(user);
}else{
throw new ChangePasswordException();
}
Однако, когда я пытаюсь войти снова, старший пароль должен быть использован, в противном случае, если новый пароль поставляется он скажет вам: пароли не совпадают. Кто-нибудь может знать, почему это происходит? Я попытался сначала удалить пользователя из базы данных, а затем снова сохранить нового пользователя. Однако исключение EJB было создано, поскольку имя пользователя не было уникальным, поскольку пользователь не был удален из базы данных.
Большое спасибо за вашу помощь
ли судимыми вы em.flush() ?? – kiki
он работает с объединением, поскольку thomas предложил ... спасибо большое – ict1991