Hi I am using the Grails filter plugin
I am trying to define a default filter as below
// Defined inside the Book entity
static hibernateFilters = {
activeFilter(condition:'active=1', default:true)
}
When i run my integration tests the filter does not apply for dynamic finder methods like
Book.findAll()
If I add the below line in the BootStrap.groovy class
Book.enableHibernateFilter('activeFilter')
Then the filter is applied.
However when the application is run the filter is never applied, with or without the above code in BootStrap.groovy
Any ideas ?
After a little digging around this is what i have found
The hibernate filter plugin works well without the zkgrails plugin however the two cannot seem to work together :(
The below code snippet seems to be the problem for me.
I think we could have two issues here
1) Initially the execution gets to
all(controller:'', action:'')
only once during application startup. I am thinking it should get there each time there is a new request and hence a new session.
2) Even if it somehow gets there after certain modification, I do not think it'll get past all(controller:'', action:'')
composers are used in zkoss
class HibernateFilterFilters {
def filters = {
all(controller:'*', action:'*') {
before = {
def session = grailsApplication.mainContext.sessionFactory.currentSession
DefaultHibernateFiltersHolder.defaultFilters.each {name ->
session.enableFilter(name)
}
}
after = {
}
afterView = {
}
}
}
}