Ceci est le premier message. Je pense que la plupart des messages sont des mémorandums sur ce sur quoi je suis tombé au travail. Sois gentil. .. ..
Java 8 Spring Boot 1.5.14
Gérez les transactions avec @Transactional et laissez DB (MySQL) effectuer le traitement des mises à jour
La classe Service a l'annotation @Transational (readonly = true) Dans la méthode de cette classe
'''hogeRepository.save()
Je faisais un processus de sauvegarde comme
Caused by: java.sql.SQLException: Connection is read-only. Queries leading to data modification are not allowed
La transaction qui lance le processus de mise à jour @Transational(readonly=false) Tu dois le faire.
Si @Transactional est donné à la fois à la classe et à la méthode, il sera écrasé par celui défini dans la méthode.
Parce que les transactions ne sont pas placées dans des endroits inattendus (par exemple en ajoutant des méthodes) Je pensais que ce n'était pas si bon de donner @Transactional à une classe
https://dev.classmethod.jp/server-side/java/spring-nested-declarative-transaction/
Dans la méthode que j'ai oublié d'ajouter @Transactional (readOnly = xxxx), Après avoir accédé au référentiel à partir du service et obtenu les données, Si vous obtenez des données imbriquées avec LazyLoad de JPA en dehors de la méthode de la classe Service Une exception LazyInitializationException s'est produite. Veuillez noter que LazyLoad, qui se charge tardivement, ne fonctionnera pas s'il est en dehors de la méthode.
Recommended Posts