【问题标题】:ExampleMatcher.withIgnorePath is fetching property path that is ignoredExampleMatcher.withIgnorePath 正在获取被忽略的属性路径
【发布时间】:2018-12-11 16:56:00
【问题描述】:

我有一个具有多个属性路径的实体。我使用 Query By Example 和 ExampleMatcher 忽略了一些属性路径。

我的实体如下所示, 员工类

private Integer id;
private String name;
private String designation;

我只想显示实体中的名称和 ID(表中的字段)。为此,我做了以下,

ExampleMatcher exampleMatcher = ExampleMatcher.matching().withIgnoreNullValues().withIgnorePaths("designation");
Example<Employee> example = Example.of(entity, exampleMatcher);

但是,响应会返回所有值,包括在 ignorePath 中给出的属性。

请帮助我如何忽略属性路径。

【问题讨论】:

  • 从未使用过ExampleMatcher,但您是否尝试过将matching() 调用放在该行的末尾而不是开头?
  • '响应返回所有值,包括在 ignorePath 中给出的属性' - 你的意思是根据designation 的值过滤结果,还是designation 的值是否存在于响应实体中?这是两个非常不同的要求
  • designation 的值存在于响应实体中

标签: hibernate spring-mvc spring-boot jpa spring-data-jpa


【解决方案1】:

withIgnorePaths("designation") 阻止查询示例应用基于示例的designation 值的过滤器。它确实阻止designation 填充到查询结果中。

如果您想从查询结果中排除某些属性,请使用projectionsquery graphs(取决于哪个更适合您的特定用例)。不过,不确定是否有办法将它们与示例查询一起使用。

【讨论】:

    【解决方案2】:

    不确定这是否可行

    ExampleMatcher exampleMatcher = ExampleMatcher.matching().withIgnorePaths("designation").withIgnoreNullValues();
    

    我只是先添加了withIgnorePaths

    参考This link

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-14
      • 1970-01-01
      • 2013-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      相关资源
      最近更新 更多