有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用@PostFilter的java筛选器嵌套/内联集合

使用@PostFilter注释筛选嵌套/内联集合时遇到问题。我的数据模型如下:

+--------+ 1   * +----------+ 1   * +---------------+
| Course |------>| Exercise |------>| Participation |
+--------+       +----------+       +===============+
                                    | user: String  |
                                    +---------------+

我基本上只想在JSON响应中包含那些用户等于当前已验证用户的参与

我已经覆盖了我的存储库接口中的findAll方法,该接口扩展了CrudRepository,并添加了@PostFilter注释:

@RepositoryRestResource(exported = false)
public interface ParticipationRepository extends CrudRepository<Participation, Long> {

  @Override
  @PostFilter("filterObject.user == principal.username")
  Iterable<Participation> findAll();

  @Override
  @PostFilter("filterObject.user == principal.username")
  Iterable<Participation> findAll(Iterable<Long> longs);
}

我还尝试在getter方法上为练习类中的参与者添加注释

但是,启用了Spring安全调试后,我可以看到PostFilter表达式从未被应用。我想这可能是因为SpringDataREST没有使用我注释的方法之一来获取参与

有没有人遇到过类似的问题并找到了解决方案?提前谢谢


共 (0) 个答案