私はSpring Dataの Query by Example 機能の使用方法を理解しようとしています。 ExampleMatcher
とそのさまざまなwith*
メソッドの使用方法を理解するのに苦労しています。使用中のマッチャーの古典的な例には、次のようなスニペットが含まれます。
Person person = new Person();
person.setFirstname("Dave");
ExampleMatcher matcher = ExampleMatcher.matching()
.withIgnorePaths("lastname")
.withIncludeNullValues()
.withStringMatcherEnding();
Example<Person> example = Example.of(person, matcher);
どういうわけか、このDSLに頭を悩ませることはできません。ドキュメントからPerson
の例を見てみましょう。 Person
エンティティが次のようになっているとします。
// Pseudo code; omitting JPA annotations for this example
public class Person {
private String firstName;
private String lastName;
private Date dob;
private Long score;
// Getters, setters & constructor omitted
}
次の基準を満たすExampleMatcher
レコードを見つけられるPerson
の作成方法の例を誰かに見せてもらえますか?
これらの基準のいずれかがExampleMatcher
では不可能な場合でも問題ありませんが、誰かが私にどの基準であるかを示したり、どのような方法で私を獲得できるかを説明したりできます私が探しているものに近い?
「Sme」で始まり、score = 50であるfirstNameのレコードを取得できます
Person person = new Person();
person.setFirstName("Sme");
person.setScore(50L);
ExampleMatcher matcher = ExampleMatcher.matching()
.withMatcher("firstName", startsWith())
.withMatcher("score", exact());
Example<History> example = Example.of(person, matcher);
personRepository.findAll(example)