Bug in MySQL Connector-J < 3.1.7
Ich habe mich heute mal mit Hibernate beschäftigt und bin dabei auf einen Bug im MySQL Connector gestossen. Die Fehlermeldung sah folgendermassen aus:
[java] 11:12:13,698 WARN JDBCExceptionReporter:71 - SQL Error: 1064, SQLState: 42000 [java] 11:12:13,698 ERROR JDBCExceptionReporter:72 - 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 '?' at line 1 [java] Exception in thread "main" org.hibernate.exception.SQLGrammarException: could not execute query [java] at org.hibernate.exception.ErrorCodeConverter.convert(ErrorCodeConverter.java:70) [java] at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
Nach ein wenig Recherche und Bug-Report
lesen stellte sich heraus dass MySQL Platzhalter im LIMIT
-Teil einer Abfrage nicht
wirklich unterstützt. In neueren Versionen des Connectors ist deswegen ein Workaround
eingebaut. Es lohnt sich also seine Softwarekomponenten auf dem neuesten Stand zu halten.