java / intermediate
Snippet
Dynamische Filterung mit JPA Specifications
JPA Specifications ermöglichen es, dynamische und wiederverwendbare Abfragen mit der Criteria API zu erstellen. Dies ist wesentlich flexibler als das Schreiben vieler Repository-Methoden für jede Filterkombination.
snippet.java
1
2
3
4
public static Specification<User> hasName(String name) {return (root, query, cb) -> cb.equal(root.get("name"), name);}// Usage: repository.findAll(Specification.where(hasName("John")));
spring
Erklärung
1
(root, query, cb) -> cb.equal(...)
Verwendet ein Lambda, um das Datenbank-Prädikat (WHERE-Klausel) zu definieren.