Main class defination
package com.autobill.enhancer import org.codehaus.groovy.grails.commons.DefaultGrailsDomainClass import org.codehaus.groovy.grails.orm.hibernate.HibernateDatastore import org.codehaus.groovy.grails.orm.hibernate.HibernateGormStaticApi /** * Created by pritom on 17/10/2016. */ class MyCustomStaticApi<D> extends HibernateGormStaticApi<D> { private HibernateGormStaticApi gormStaticApi MyCustomStaticApi(HibernateGormStaticApi gormStaticApi) { super(gormStaticApi.persistentClass, gormStaticApi.datastore as HibernateDatastore, gormStaticApi.gormDynamicFinders, gormStaticApi.classLoader, gormStaticApi.transactionManager) this.gormStaticApi = gormStaticApi } @Override D read(Serializable id) { println("Reading-${id}") super.read(id) } static void init(servletContext) { servletContext.grailsApplication.domainClasses.each { DefaultGrailsDomainClass domainClass -> def gormStaticApi = domainClass.clazz.currentGormStaticApi() domainClass.clazz.setStaticGormStaticApi(new MyCustomStaticApi(gormStaticApi)) } } }