将@PostFilter注释应用于通用的Spring Data Jpa存储库方法



我想在Spring Data Jpa储存库通用方法(如findAll)上使用@PostFilter注释,如下所示:

@PostFilter("filterObject.isActivated()==true")
public List<Advertisement> findAll();

我怎么能做到这一点,记住这些方法是由Spring Data Jpa"自动"提供的,因此不暴露在应用程序代码中?

是的,您可以将@PostFilter添加到Spring数据存储库提供的任何方法中。只需重写现有方法findAll()并添加@PostFilter注释,如示例中所示。不要忘记在定义存储库的配置中添加

<global-method-security pre-post-annotations="enabled" />

或基于Java的配置

@EnableGlobalMethodSecurity(prePostEnabled = true)

。记住。这只适用于集合和数组。对于其他的返回类型,比如Page,你会得到一个IllegalArgumentException。实现细节见DefaultMethodSecurityExpressionHandler#filter

相关内容

  • 没有找到相关文章

最新更新