Привет! Я использую плагин фильтра Grails
Я пытаюсь определить фильтр по умолчанию, как показано ниже
// Defined inside the Book entity
static hibernateFilters = {
activeFilter(condition:'active=1', default:true)
}
Когда я запускаю свои интеграционные тесты, фильтр не применяется для таких методов динамического поиска, как
Book.findAll()
Если добавить строку ниже в классе BootStrap.groovy
Book.enableHibernateFilter('activeFilter')
Тогда фильтр применяется.
Однако, когда приложение запускается, фильтр никогда не применяется, с или без вышеуказанного кода в BootStrap.groovy
Есть идеи?
После небольшой копки вот что я нашел
Плагин фильтра гибернации работает хорошо без плагина zkgrails, однако, похоже, что эти два не работают вместе: (
Мне кажется, что приведенный ниже фрагмент кода является для меня проблемой.
Я думаю, у нас могло бы быть два вопроса
1) Первоначально исполнение достигает
все (контроллер: '', действие: '')
только один раз при запуске приложения. Я думаю, что он должен получаться каждый раз, когда появляется новый запрос и, следовательно, новый сеанс.
2) Даже если он каким-то образом попадет туда после определенной модификации, я не думаю, что он пройдет
все (контроллер: '', действие: '')
композиторы используются в zkoss
class HibernateFilterFilters {
def filters = {
all(controller:'*', action:'*') {
before = {
def session = grailsApplication.mainContext.sessionFactory.currentSession
DefaultHibernateFiltersHolder.defaultFilters.each {name ->
session.enableFilter(name)
}
}
after = {
}
afterView = {
}
}
}
}