Копия моего проекта содержит следующий фрагмент в HibernateGrailsPlugin.groovy:
def doWithDynamicMethods = {
def dynamicMethods = HibernatePluginSupport.doWithDynamicMethods
dynamicMethods.delegate = delegate
dynamicMethods.call(it)
// aids in generating appropriate documentation in plugin.xml since
// domain class methods are lazily loaded we initialize them here
if(plugin.basePlugin) {
try {
def clz = application.classLoader.loadClass("org.grails.Behavior")
clz.count()
}
catch(e) {
// ignore
}
}
}
Я новичок в grails / groovy, но если я правильно понимаю, это закрытие делегирует добавление / удаление динамических методовзакрытию doWithDynamicMethods класса HibernatePluginSupport.Похоже, что класс HibernatePluginSupport скомпилирован с остальным кодом, специфичным для Grails, если код для HibernatedPluginSupport находился в копии плагина моего проекта, я мог бы легко настроить его под свои нужды.У меня вопрос, как мне изменить автоматически сгенерированные методы для определенных классов?Единственный способ, которым я вижу, - переписать замыкание doWithDynamicMethods в файле groovy, но я не хочу этого делать, поскольку настраиваю его только для некоторых классов домена.В частности, как мне удалить / заменить динамические методы, добавленные закрытием HibernatePluginSupport.doWithDynamicMethods?