моего проекта содержит следующий фрагмент кода в HibernateGrailsPlugin.groovy:Можно ли настроить гибридные методы CRUD спящего режима для моего приложения grails? копия
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
}
}
}
Я новичок в Грааль/заводные, но если я правильно понимаю, это замыкание делегирования надстройки/удаления динамических методов к doWithDynamicMethods закрытие класса HibernatePluginSupport. Кажется, класс HibernatePluginSupport скомпилирован с остальным кодом grails, если код для HibernatedPluginSupport жил в копии моего проекта плагина, я мог бы легко настроить его в соответствии с моими потребностями. Мой вопрос в том, как мне изменить автогенерируемые методы для определенных классов? Единственный способ, по которому я вижу, это переписать закрытие doWithDynamicMethods в файле groovy, но я не хочу этого делать, поскольку я настраиваю его только для некоторых классов домена. Более конкретно: Как удалить/заменить динамические методы, добавленные закрытием «HibernatePluginSupport.doWithDynamicMethods»?
что это такое, что вы пытаетесь настроить? Возможно, методы перехватчика, такие как beforeInsert, beforeUpdate и т. Д., Являются лучшим способом его достижения? Я никогда не слышал о том, как люди меняют save() delete(), find() и т. Д. – leebutts