Hibernate 3.2.1.gaでJPQL解釈時にNoSuchMethodErrorで落ちる事の対処法

月月火水木金金なカレンダーで過ごし中&現在進行形で仕事中な今日この頃です。
Hibernate 3.2.1.gaでついさっきまではまってたのでメモメモ。
詳しく書くと、JPA 1.0(結局今のが1.0なのか?)の実装としてHibernate使ってる際に、特定のJPQLが解釈出来ずに落ちる際の対処法。


まずはおちっぷりから。
一部のJPQLは正常に走るんですが、一部のJPQLだとこける。
どうこけるかというと

java.lang.NoSuchMethodError: org.hibernate.hql.antlr.HqlBaseParser.recover(Lantlr/RecognitionException;Lantlr/collections/impl/BitSet;)V

こんな。
よりにもよってNoSuchMethodErrorかYO (ノ−o-)ノ ┸┸)`3゚)・;'.
つーわけでソースおっかけてみたら、確かにそんなメソッド無いぽぃ。
そんなわけでMaven

mvn project-info-reports:dependencies

で依存関係ツリー出してみたら、antlr 2.7.2が出てきた。
Google先生にお聞きする限り、どうも antlr 2.7.6 が必要らしい。
確かにこのバージョンだとrecoverメソッドがあるな・・・
というわけでpom.xml


  antlr
  antlr
  2.7.6

って足したら動いた。
Hibernate 3.2.1.ga関係でpom.xmlに書き忘れてるやつがいるのかな。
本当は詳しく追いかけたいけど、時間無いのでとりあえずメモだけ。