SpringDataJPA3 @Transactional führt keine Aktualisierung für fehlerhaftes Objekt durch
Posted: 23 Jan 2025, 06:42
Hier ist das Codeszenario
und
Benutzer hat so abgerufen
und
Jetzt können Sie sehen, dass das Benutzerobjekt aktualisiert ist und sich in einem fehlerhaften Zustand befindet, aber nach Abschluss dieser Transaktion wird die Benutzerspalte nicht in der Datenbank aktualisiert
Aber dieselbe Codebasis Springboot2.6.6/JPA/Hibernate5 hat gut funktioniert, aber jetzt wird die neueste Version von Springboot3.4.1/JPA/Hibernate-core6.6.4 verwendet.
Gibt es irgendwelche größeren Änderungen von Hibernate zu bewältigen? Die @Transactional ?
Code: Select all
@Transactional
public User login(String username, String password, String ipAddress, boolean needDevRoleCheck)
throws CatalogAPIException, LoginFaultException {
return internalLogin(username, password, ipAddress, needDevRoleCheck);
}
Code: Select all
private User internalLogin(String username, String password, String ipAddress, boolean needDevRoleCheck)
throws CatalogAPIException, LoginFaultException {
User user = null;
try {
user = userService.getUserByUsername(username.toUpperCase());
} catch (ServiceException e) {
logger.error(e);
}
authorizationService.checkDevModeLocked(user);
}
Code: Select all
public User getUserByUsername(String username) throws ServiceException {
User user = userRepository.findByUsername(username.toUpperCase());
if (user == null) {
throw new ServiceException("definition.user.not.found", localeService.getMessage("definition.user.not.found", username));
}
return user;
}
Code: Select all
public void checkDevModeLocked(User user) throws LoginFaultException {
///some more logic and then
user.setDevLogin(Constants.TRUE);
}
Aber dieselbe Codebasis Springboot2.6.6/JPA/Hibernate5 hat gut funktioniert, aber jetzt wird die neueste Version von Springboot3.4.1/JPA/Hibernate-core6.6.4 verwendet.
Gibt es irgendwelche größeren Änderungen von Hibernate zu bewältigen? Die @Transactional ?