我想在Spring Data Jpa存储库通用方法(例如@PostFilter
)上使用findAll
注释,如下所示:
@PostFilter("filterObject.isActivated()==true")
public List<Advertisement> findAll();
我怎么能记住这些方法是由Spring Data Jpa“自动”提供的,因此不在应用程序代码中公开?
答案 0 :(得分:1)
是的,您可以向Spring Data Repository提供的任何方法添加@PostFilter
。只需覆盖现有方法findAll()并添加您的@PostFilter
注释,如示例所示。不要忘记添加到定义了存储库的配置
<global-method-security pre-post-annotations="enabled" />
或基于java的配置
@EnableGlobalMethodSecurity(prePostEnabled = true)
分别。 记住。这适用于集合和数组。对于像Page这样的其他每种返回类型,都会出现IllegalArgumentException。有关实施细节,请参阅DefaultMethodSecurityExpressionHandler#filter。