JPA criteria query, um auf Klasse
Gibt es eine Möglichkeit mit JPA criteria-Abfragen, um auf Klasse? Stellen Sie sich die folgenden Domänen-Objekten:
abstract class Hobby { ... }
class Coding extends Hobby { ... }
class Gaming extends Hobby { ... }
Mithilfe von regulären QL war ich in der Lage, das zu tun
from Hobby h order by h.class
Aber wenn ich die gleiche Logik auf die Kriterien Abfrage, die Laufzeit-exception "unbekanntes Attribut" Auftritt.
CriteriaQuery<Hobby> criteriaQuery = builder.createQuery(Hobby.class);
Root<Hobby> hobbyRoot = criteriaQuery.from(Hobby.class);
criteriaQuery.orderBy(builder.asc(hobbyRoot.get("class"));
List<Hobby> hobbies = entityManager.createQuery(criteriaQuery).getResultList();
JPA-Implementierung: Hibernate-EntityManager v3.5.5-Finale
Du musst angemeldet sein, um einen Kommentar abzugeben.
JPA 2.0 führt eine neue
TYPE
Ausdruck, dass eine Abfrage einschränken, um die Ergebnisse basierend auf der Klasse-Typen.Können Sie ein Typ-Ausdruck, der die Kriterien API mit
Path#type()
. So könnte man versuchen:Während dieser code kompiliert, ich habe nicht testen Sie es (ich werde es morgen testen).
Eigentlich, Frage ich mich, ob das legal ist, oder wenn die
type()
sollten die wählen, umorder by
es (vielleicht das ist, was die Kriterien der Abfrage soll generieren). Brauchen, um zu überprüfen, dass.Referenzen
Mehr Ressourcen