Ich verwende Spring Data JPA-Spezifikationen für generische Abfragen an meine Entitäten. Bisher hat es gut funktioniert. Jetzt trat das Problem auf, wenn ich versuche, diese auf zusammengesetzten Schlüsseln zu verwenden, die über eingebettete ID Annotation verwendet werden. Also hier muss ich eine geschachtelte Eigenschaft verwenden, um abzufragen, die sagen, wenn das Objekt Foo ist und ich versuche, ein Kriterium über die ID zu schreiben. id1 zum Beispiel.Können wir Spring Data JPA-Spezifikation aus einem zusammengesetzten Schlüsselattribut erstellen
@Entity
@Data
public class Foo implements Serializable {
private static final long serialVersionUID = 1L;
/** The key. */
@EmbeddedId
private FooKey id;
}
@Embeddable
@Data
public class FooKey implements Serializable {
private static final long serialVersionUID = 1L;
/** The key. */
private String id1;
private String id2;
}
In der Beschreibung versuche ich
@Override
public Predicate toPredicate(Root<T> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
// get root type
root.get(property).getJavaType()
Aber das funktioniert nicht für verschachtelte Attribute wie in diesem Fall zu tun. Gibt es eine Möglichkeit, Prädikate für Eigenschaften im zusammengesetzten Schlüssel zu erstellen.
FWIW Es gibt nicht so etwas wie ein "Spring Data JPA Prädikat"; Dies ist ein JPA-Kriterienprädikat. Spring Data JPA! = JPA –
yup danke für die korrektur –