Meine Spring-Boot-Anwendung zeigt mir immer diesen Whitelabel-Fehler am Morgen: JPA EntityManager konnte für die Transaktion nicht geöffnet werden; verschachtelte Ausnahme ist javax.persistence.PersistenceException: org.hibernate.TransactionException: JDBC begin transaction failed:
Ich habe das Web durchsucht. Ich denke, es könnte sein, dass mysql die Verbindung für 8 Stunden inaktiv schließt. Gemäß dem Dokument wird der Spring Boot jedoch automatisch eine Pooling-Apache-Datenquelle konfigurieren. Ссылка
Ich bin mir nicht sicher, wie ich den Anwendungscode oder die Datenbank konfigurieren soll.
Hier ist die Build.gradle, die ich verwende:
%Vor%Hier sind die Datenbankkonfigurationen in application.properties:
%Vor%Für die Datenquelle verwende ich das Repository von spring data:
%Vor%Hier ist das Ergebnis gegen die mysql-Datenbank, auf der "zeige Variablen wie '% timeout%':
läuft %Vor%Überprüfen Sie diese Antwort: Spring Boot JPA - Konfigurieren der automatischen Wiederverbindung
Kurz gesagt, Sie brauchen:
%Vor%Sie können auch diesen Link sehen Es fordert Sie auf, die folgenden Zeilen in die Datei application.properties aufzunehmen.
%Vor%Sie können das beheben, indem Sie im DB Server die Eigenschaft wait_timeout = 31536000 setzen. Dies entspricht einem Jahr. Wenn Ihre Datenbank in der AWS-Umgebung ausgeführt wird, gehen Sie zu Parameters group- & gt; Erstelle eine neue Gruppe - & gt; Legen Sie wait_timeout = 31536000 fest und weisen Sie die neu erstellte Parametergruppe Ihrer RDS-Instanz zu. Wenn Sie dies in der Spring-Boot-Instanz beheben wollen, können Sie nur mit C3P0-Einstellungen beheben, aber ich habe das nicht versucht.
Tags und Links mysql hibernate spring spring-boot