4

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

  1. 除了我设置匹配器的一些路径之外,有什么方法可以忽略所有路径。null或者,如果 Example 对象的路径具有值,是否有任何方法可以忽略所有路径。像下面这样设置所有路径名是很烦人的:

ExampleMatcher<Product> matcher =ExampleMatcher.matching().ignorePaths("field_a", "field_b");

  1. 如何使用示例匹配连接列。例如。产品实体具有用户实体字段作为@ManyToOne关系。用户实体有几个字段,但我的示例对象的用户字段仅填充了 userId 字段。在这种情况下,我想查找具有user_id与产品示例对象中包含的用户对象中包含的 userId 字段值匹配的外键列的产品数据。

抱歉英语不好...实际上这是我在 Stack Overflow 上的第一个问题。感谢关注。我期待着很好的答案。

4

1 回答 1

3

Spring Data默认会忽略属性中的空值。因此,您无需忽略空值的路径。我们还可以使用匹配器上的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);
于 2017-07-21T06:04:42.433 回答