PlanetXML

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.