Я хочу обновить свой пароль через Thymeleaf.Пока что все работает, кроме того, как только я вызываю свой метод обновления, я получаю сообщение об ошибке.
Это мой код:
@PostMapping
public String updateOldPassword(@Valid @ModelAttribute("password") PasswordChange userAndpassword,
BindingResult result, ModelMap model) {
if (result.hasErrors()) {
return "error";
}
String username = userAndpassword.getUsername();
String password = userAndpassword.getPassword();
String newPassword = passwordEncoder.encode(password);
passwordRepo.updatePassword(username, newPassword);
return "redirect:/";
}
public interface updateOldPasswordRepository extends JpaRepository<Benutzer, Long>{
@Modifying
@Query(value = "UPDATE benutzer SET passwort = ? WHERE benutzername = ?", nativeQuery = true)
void updatePassword(String benutzername, String passwort);
}
Когда он пытается обновить мой пароль, я получаюэто сообщение об ошибке:
ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.InvalidDataAccessApiUsageException: Executing an update/delete query; nested exception is javax.persistence.TransactionRequiredException: Executing an update/delete query] with root cause
javax.persistence.TransactionRequiredException: Executing an update/delete query
at org.hibernate.query.internal.AbstractProducedQuery.executeUpdate(AbstractProducedQuery.java:1496)
at org.springframework.data.jpa.repository.query.JpaQueryExecution$ModifyingExecution.doExecute(JpaQueryExecution.java:256)
at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:91)
at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:136)
at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:125)
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.doInvoke(RepositoryFactorySupport.java:590)
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:578)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:59)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
Может быть, кто-то может мне помочь, пожалуйста.
Спасибо.