Mam do czynienia z dotychczasowym systemem napisanym do pracy z MySQL 5.0, a teraz muszę go przenieść do MysQL 5.5 (wymaganie). Zauważyłem, że jedna kolumna została nazwana maxvalue
, co wydaje się być słowem systemowym w MySQL 5.5. Tak więc wszystkie moje pytania Hibernate, które zawierają tę kolumnę dać błąd składni:Wykonaj wsteczną wstecz wszystkie nazwy tabeli/kolumny
Caused by: java.sql.BatchUpdateException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'maxvalue
Wydaje się, że Hibernacja nie automatycznie, ale małe cudzysłowy `wokół nazwy pola. Jeśli wyodrębnię zapytanie, wsteczna wartość `maxvalue \
działa poprawnie w MySQL 5.5.
Znalazłem solution jak wyraźnie wymusić cytaty z ty? U dla konkretnego pola/tabeli. Chodzi o to, że nie jestem pewien, jak wiele innych nazw kolumn wywoła taki problem. Czy istnieje sposób powiadomienia Hibernate, aby automatycznie odtworzył wstecz wszystkie nazwy tabel/kolumn? (który da prawidłowy SQL i nie wiem, dlaczego nie robi tego domyślnie dla MySQL).
EDYTUJ: This discussion prawie sprawia, że wierzę, że to, czego chcę, nie jest możliwe.
Ponieważ Hibernate jest projektem open source .... :) – StarPinkER
@JermaineXu Tak i wszyscy mamy czas przestać cokolwiek jesteśmy rzeczywiście działa aby nauczyć się i naprawić kod kogoś innego ... – Basic