Ich habe eine Spring-Boot-Anwendung, in der ich die Tabellen basierend auf einigen Konfigurationen initialisieren muss. Ich verwende verwaltete Transaktionen mit @Transactional
. Mein Problem ist, dass ich nicht weiß, wann App bereit ist, DB-Transaktionen zu machen. Ich habe eine Bohne, die die Konfiguration liest und aktualisiert die Tabellen, aber es wird eine Ausnahme an diesem Punkt:Initialisierungs-Tabellen beim Start des Spring-Bootes
Could not obtain transaction-synchronized Session for current thread
ich versucht habe, wenn ich sprintboot warten zu starten und die gleichen Transaktionen über HTTP-Anfragen zu machen , dann gibt es kein Problem. Es scheint also ein Timing-Problem zu sein. Ich habe auch versucht, den Code auf von Bean zu verschieben, aber es behebt das Problem nicht.
Woher weiß ich, dass die App für DB-Transaktionen bereit ist? Jede Hilfe wird sehr geschätzt.
Danke für den Hinweis. Ich habe tatsächlich die Annotation @EventListener verwendet, die ab Frühjahr 4.2 verfügbar ist. – Aarkan
Noch besser! :) –