Skip to main content
 首页 » 编程设计

spring之是否有任何可能的方法可以忽略 JPA Example Matcher 的所有路径

2024年09月07日25飞鱼

我是 Spring JPA 的新手。
我有两个关于 Example 和 ExampleMatcher API 的问题。

  • 除了我设置匹配器的一些路径之外,有什么方法可以忽略所有路径。或者,如果示例对象的路径具有 null,是否有任何方法可以忽略所有路径?值(value)。像下面这样设置所有路径名很烦人:
  • ExampleMatcher<Product> matcher =ExampleMatcher.matching().ignorePaths("field_a", "field_b");
  • 如何使用示例匹配连接的列。例如。产品实体的用户实体字段为 @ManyToOne关系。 User 实体有几个字段,但我的 Example 对象的 User 字段只填充了 userId 字段。在这种情况下,我想找到具有 user_id 的产品数据外键列匹配产品示例对象中包含的用户对象中包含的 userId 字段值。

  • 对不起,英语不好……实际上这是我在 Stack Overflow 上的第一个问题。
    谢谢关注。
    我期待着很好的答案。

    请您参考如下方法:

    Spring 资料 默认 将忽略属性中的空值。所以你不需要忽略空值的路径。我们也可以使用 withIgnoreNullValues() ( docs ) 方法调用匹配器以明确告诉它忽略空值。

    注意原始值(int、double 等)如果未设置仍将使用,因为原始值不能有空值并使用默认值,因此如果不用于匹配,您应该忽略原始属性。

    对于您的第二个问题,您可以执行以下操作

    Product product = new Product(); 
    User user = new User(); 
    user.setId(5); // Id to be matched 
    product.setUser(user); // Associate User object with Product         
    Example<Product> example = Example.of(product,matcher);