Версия Grails LocalSessionFactoryBean является подклассом org.codehaus.groovy.grails.orm.hibernate.ConfigurableLocalSessionFactoryBean. Он зарегистрирован как Spring bean в org.codehaus.groovy.grails.plugins.orm.hibernate.HibernatePluginSupport как
sessionFactory(ConfigurableLocalSessionFactoryBean) {
...
}
так что у вас есть несколько вариантов. Один из них - переопределить bean-компонент в resources.groovy, следуя настройкам Grails и вашим изменениям, т. Е.
sessionFactory(MyCustomConfigurableLocalSessionFactoryBean) {
...
typeDefinitions = ...
}
или, если возможно, вы можете ссылаться на bean-компонент и изменить его в BootStrap:
class BootStrap {
def sessionFactory
def init = { servletContext ->
sessionFactory.foo = bar
}
def destroy = {}
}
Похоже, что typeDefinitions необходимо настроить заранее, в то время как фабричный компонент строит SessionFactory, поэтому вариант 1, вероятно, является лучшим выбором.