2013-01-16 43 views
3

我的網域使用Hibernate的過濾器,像這樣:Hibernate的過濾器是不是在Grails的服務/工作應用

class UserMapping { 
    // Senseless App Logic here 
    static hibernateFilters = { 
     typeFilter(condition: "type = 'IDENTIFIED'", default: true) 
     flagFilter(condition: "flags = 'ACTIVE'", default: true) 
    } 
} 

他們似乎當我使用他們在控制器但是當我做同樣的findBy申請很好..在我的服務或工作中,他們不適用。有什麼建議麼?

如果它有什麼區別,我調用mixin中的findBy。

這個問題似乎有關,但它不正是我在尋找: enabling grails hibernate filters

+0

在我的情況,我發現我忘記了「默認:真」標誌。 :o – RMorrisey

回答

2

過濾器會自動啓用唯一的一次是在web請求 - 這是由於插件的HibernateFilterFilters將所有啓用過濾器每前網絡請求。但是沒有全局自動過濾器邏輯 - 這是不切實際的。

而是使用plugin documentation中描述的方法之一,例如,

UserMapping.withHibernateFilters { 
    ..code to execute 
} 
+0

伯特,你已經是冠軍了。感謝您回答我的兩個問題! – sunnyrjuneja

0

在我的情況下,我發現我忘記了「default:true」標誌。 :○

我們也有BootStrap.groovy中的代碼使Hibernate的過濾器:

def init = { servletContext -> 
    //Hibernate filters 
    MyDomainObject.enableHibernateFilter('myFilter') 
} 

(我知道這個問題已經回答了,但我希望這可以幫助別人是在尋找)

相關問題