我继承了一个较旧的 Grails 1.2 应用程序,并且正在尝试将其升级到最新的 Grails 2.1.2。Grails 发生了一些变化,因为 resources.groovy 中的这段代码曾经可以工作:
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 实例。
我该如何解决?