古いGrails1.2アプリケーションを継承しましたが、最新のGrails2.1.2にアップグレードしようとしています。resources.groovyのこのコードが機能していたため、Grailsで何かが変更されました。
searchIndexBuilder(SearchIndexBuilder) {bean ->
bean.singleton = true
indexManager = ref("indexManager")
sessionFactory = ref("sessionFactory")
}
SearchIndexBuilder.javaからのこのコードと組み合わせる:
private void injectHibernateEventListener() {
try {
HibernateEventListener hel = initHibernateEventListener();
SessionFactoryImpl hibernateSessionFactory = (SessionFactoryImpl) sessionFactory; //fails here
EventListeners hibernateEventListeners = hibernateSessionFactory.getEventListeners();
etc....
SessionFactoryImplを拡張しないSessionFactoryProxyのインスタンスを取得したため、コードはキャストで失敗します。
これを修正するにはどうすればよいですか?