2
Ich habe Spezifikation:Spring Data JPA - Spezifikationen beitreten
final String text = "%text%";
final Specifications<PersonEntity> spec = Specifications.where(
(root, query, builder) -> builder.like(builder.lower(root.join(PersonEntity_.addresses, JoinType.LEFT).get(AddressEntity_.addressLine1)), text)
).or(
(root, query, builder) -> builder.like(builder.lower(root.join(PersonEntity_.addresses, JoinType.LEFT).get(AddressEntity_.addressLine2)), text)
).or(
(root, query, builder) -> builder.like(builder.lower(root.join(PersonEntity_.addresses, JoinType.LEFT).get(AddressEntity_.city)), text)
)
Nach der Verwendung:
personRepository.findAll(spec);
In logs Ich sehe, dass JPA-Abfrage erstellen, wo es Adressen dreimal statt einmal beitritt.
Wie kann ich Spezifikation schreiben, wo Adressen nur einmal beitreten?