Dies ist der erste Beitrag. Ich denke, die meisten Beiträge sind Memoranden darüber, worauf ich bei der Arbeit gestoßen bin. Sei sanft. .. ..
Java 8 Spring Boot 1.5.14
Verwalten Sie Transaktionen mit @Transactional und lassen Sie DB (MySQL) die Update-Verarbeitung durchführen
Die Service-Klasse verfügt über die Annotation @Transational (readonly = true) In der Methode dieser Klasse
'''hogeRepository.save()
Ich habe einen Speicherprozess wie gemacht
Caused by: java.sql.SQLException: Connection is read-only. Queries leading to data modification are not allowed
Die Transaktion, die den Aktualisierungsprozess auslöst @Transational(readonly=false) Du musst es machen.
Wenn @Transactional sowohl für die Klasse als auch für die Methode angegeben wird, wird es mit der in der Methode definierten überschrieben.
Weil Transaktionen nicht an unerwarteten Orten platziert werden (z. B. durch Hinzufügen von Methoden) Ich fand es nicht so gut, einer Klasse @Transactional zu geben
https://dev.classmethod.jp/server-side/java/spring-nested-declarative-transaction/
In der Methode, die ich vergessen habe, @Transactional hinzuzufügen (readOnly = xxxx), Nachdem Sie vom Dienst aus auf das Repository zugegriffen und die Daten abgerufen haben, Wenn Sie verschachtelte Daten mit LazyLoad von JPA außerhalb der Methode der Service-Klasse erhalten Eine LazyInitializationException ist aufgetreten. Bitte beachten Sie, dass LazyLoad, das spät geladen wird, nicht funktioniert, wenn es außerhalb der Methode liegt.
Recommended Posts