[JAVA] Ich war süchtig nach Spring's @Transactional

Freut mich, dich kennenzulernen

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. .. ..

Umgebung

Java 8 Spring Boot 1.5.14

Was ich machen wollte

Verwalten Sie Transaktionen mit @Transactional und lassen Sie DB (MySQL) die Update-Verarbeitung durchführen

Stolperpunkt

Die Service-Klasse verfügt über die Annotation @Transational (readonly = true) In der Methode dieser Klasse

'''hogeRepository.save()

Ich habe einen Speicherprozess wie gemacht

Fehlerinhalt

Caused by: java.sql.SQLException: Connection is read-only. Queries leading to data modification are not allowed

Fazit

Die Transaktion, die den Aktualisierungsprozess auslöst @Transational(readonly=false) Du musst es machen.

Andere

Wenn @Transactional sowohl für die Klasse als auch für die Methode angegeben wird, wird es mit der in der Methode definierten überschrieben.

Impressionen

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

Memo

https://dev.classmethod.jp/server-side/java/spring-nested-declarative-transaction/

Nachtrag (22.01.2019)

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

Ich war süchtig nach Spring's @Transactional
Zusammenfassung dessen, was ich in Spring Batch gelernt habe
Ich blieb in File stecken
[Java] Was in der Kapselung stecken geblieben ist
Was ist @Autowired im Spring Boot?
Was ich bei der Migration von der Spring Boot 1.4-Serie zur 2.0-Serie getan habe
Was ich bei der Migration von der Spring Boot 1.5-Serie zur 2.0-Serie getan habe
Was ich in der Wagby-Entwicklung untersucht habe Anmerkung 1
[* Java *] Ich habe am JJUG CCC 2019 Spring teilgenommen
Ich habe die Verwendung der Schlangenhülle für den Variablennamen in Spring Boot nicht mehr verstanden
Wo ich im heutigen "Rails Tutorial" (2020/10/08) stecken geblieben bin
Zusammenfassung dessen, was ich über Spring Boot gelernt habe
Wo ich im heutigen "Rails Tutorial" (2020/10/05) stecken geblieben bin
Wo ich im heutigen "Rails Tutorial" (2020/10/06) stecken geblieben bin
Ich habe es mit Spring versucht.
Was ich gelernt habe
Wo ich im heutigen "Rails Tutorial" (2020/10/04) stecken geblieben bin
Wo ich im heutigen "Rails Tutorial" (2020/10/07) stecken geblieben bin
Untersuchte asynchrone Ausführung von Abfragen in Spring Boot 1.5.9
Ich habe ein Symbol, das in Android Studio nicht aufgelöst werden kann
Was ich in Java gelernt habe (Teil 3) Anweisung zur Ausführung von Anweisungen
Ich habe in RSpec den Fehler "undefined method` create '" erhalten
Ich habe im Frühjahr einen Restful-Server und -Client erstellt.
Was ich beim Erstellen eines Servers in Java gelernt habe
Ich steckte in einem Klon eines zweidimensionalen Arrays fest
Worauf ich beim ActiveModel :: Serializer-Test gestoßen bin
Ich habe versucht herauszufinden, was sich in Java 9 geändert hat
Injizieren Sie den Logger im Frühjahr
[Ich habe es versucht] Spring Tutorial
[Persönliches Memo] Rückblick auf das, was ich in Docker feststeckte ... einschließlich Linux-Kenntnisse
Was ich gelernt habe ② ~ Mock ~
Was ist Spring Tools 4?
Verwenden Sie Interceptor im Frühjahr
Ich habe Spring Batch ausprobiert
Microservices in Spring Cloud
Holen Sie sich Cookies im Frühling
Was ich beim Update auf Spring Boot 1.5.12 behoben habe ・ Wovon ich süchtig war
Ich habe versucht, dies und das von Spring @ Transactional zu überprüfen
Was ich in Java gelernt habe (Teil 4) Bedingte Verzweigung und Wiederholung
So steuern Sie Transaktionen in Spring Boot ohne Verwendung von @Transactional