问题
People, I'm facing a problem with grails GORM, my Application is totally dependent of the DomainClass.list()
method, it is in all of my create/edit GSPs, but now I need a particular behavior for listing objects. Being more specific I need to filter these lists (All of them) by one attribute.
The problem is I'm hoping not to change all the appearances of these methods calling, so is there a way to customize the behavior of the default list()
method ? I need it to function just the way it does, but adding an ending filter.
回答1:
Maybe you can use hibernate filter plugin (see here). This will allow you to filter all finder methods (including list()
) based on a property:
static hibernateFilters = {
enabledFilter(condition: 'deleted=0', default: true)
}
回答2:
Have you considered using names queries? You could always do something like this:
class DomainClass {
// ... class members
static namedQueries = {
myList { params->
// put your complicated logic here
}
}
}
Then you can just replace your calls to DomainClass.list()
with DomainClass.myList.list()
.
来源:https://stackoverflow.com/questions/9430978/how-to-override-the-domainclass-list-in-gorm-grails