Setzen Sie alle Tabellen- / Spaltennamen in den Ruhezustand zurück
Ich bin mit einem Legacy-System konfrontiert, das für die Arbeit mit MySQL 5.0 geschrieben wurde, und muss es jetzt auf MySQL 5.5 migrieren (Voraussetzung). Ich fand, dass eine Spalte benannt wurdemaxvalue
, das scheint ein Systemwort in MySQL 5.5 zu sein. So geben alle meine Ruhezustand-Abfragen, die diese Spalte enthalten, Syntaxfehler:
Auslöser: java.sql.BatchUpdateException: Ihre SQL-Syntax ist fehlerhaft. Überprüfen Sie im Handbuch, das Ihrer MySQL-Serverversion entspricht, ob die richtige Syntax für die Verwendung nahe 'maxvalue' vorliegt
Es scheint, dass Hibernate den Feldnamen nicht automatisch in Anführungszeichen setzt. Wenn ich die Abfrage extrahiere, backquote`maxvalue`
es läuft korrekt in MySQL 5.5.
ich habe gefundenLösung wie man explizit Backquotes für ein bestimmtes Feld / eine bestimmte Tabelle erzwingt. Die Sache ist, dass ich nicht sicher bin, wie viele andere Spaltennamen ein solches Problem erzeugen werden.Gibt es eine Möglichkeit, Hibernate anzuweisen, alle Tabellen- / Spaltennamen automatisch zurückzutragen? (was gültiges SQL erzeugt und ich weiß nicht, warum es das nicht standardmäßig für MySQL macht).
BEARBEITEN: Diese Diskussion lässt mich fast glauben, dass das, was ich will, nicht möglich ist.