Я работаю над рамкой Grails. Мне интересно, что как Grails метод класса домена являются динамическими сгенерированы для каждого домена класса приложения Grails, какGrails как методы автоматически или динамически создаются для класса домена?
графа, countBy, createCriteria, удалить, сброшенных, ошибки, ExecuteQuery, executeUpdate, существует , fetchMode, находка, FindAll, findAllBy, findAllWhere, findBy, findOrCreateBy, findOrCreateWhere, findOrSaveBy, findOrSaveWhere, findWhere, первых, получить, GETALL, getDirtyPropertyNames, getPersistentValue, hasErrors, hasMany, hasOne, идент, InstanceOf, isAttached, isDirty, наконец, список , listOrderBy, нагрузка, замок, слияния, чтения, обновления, сохранить, Validate, где withCriteria, withNewSession, withSession, withTransaction
«В Grails 3.x метапрограммирование не используется для расширения классов домена». - Это не совсем так. Мы по-прежнему используем метапрограммирование времени выполнения для таких вещей, как динамические искатели, которые невозможно подстроить во время компиляции. Многие другие вещи, которые раньше выполнялись при метапрограммировании во время выполнения, были заменены решениями на основе признаков или пользовательскими преобразованиями АСТ, но метапрограммирование времени выполнения все еще используется в Grails 3. –