覆盖 DomainClass 中的获取
Override get in DomainClass
我正在使用休眠过滤器来过滤域对象,每个用户只能看到 his/her 数据。
这是对 .get() 的期望。
插件页面建议使用.findById()。
原因是 get 不被视为查询,并且我的休眠过滤器未应用。因此,用户会看到他当然不应该看到的另一个用户的数据。
我现在正在寻找一种有效的方法来用 .findBy() 替换我所有的 .get()。
有没有办法通过扩展实现这个?
我的所有域-类 扩展 BaseDomainClass。
您可以使用 Groovy 元类覆盖 get() 方法。您可以通过将其放在 Bootstrap.groovy.
中的 init 闭包中来实现
BaseDomainClass.metaClass.static.get = {Serializable id ->
delegate.findById(id)
}
注意:您可能必须 import BaseDomainClass 到 Bootstrap.groovy。
我正在使用休眠过滤器来过滤域对象,每个用户只能看到 his/her 数据。
这是对 .get() 的期望。
插件页面建议使用.findById()。
原因是 get 不被视为查询,并且我的休眠过滤器未应用。因此,用户会看到他当然不应该看到的另一个用户的数据。
我现在正在寻找一种有效的方法来用 .findBy() 替换我所有的 .get()。
有没有办法通过扩展实现这个?
我的所有域-类 扩展 BaseDomainClass。
您可以使用 Groovy 元类覆盖 get() 方法。您可以通过将其放在 Bootstrap.groovy.
中的 init 闭包中来实现BaseDomainClass.metaClass.static.get = {Serializable id ->
delegate.findById(id)
}
注意:您可能必须 import BaseDomainClass 到 Bootstrap.groovy。