Jakarta dotazovací jazyk perzistence - Jakarta Persistence Query Language

Jakarta dotazovací jazyk perzistence
OSCross-platform
webová stránkazatmění-ee4j.github.io/ jakartaee-tutorial/ persistence-querylanguage.html
Ovlivněno
SQL, Přezimovat

The Jakarta dotazovací jazyk perzistence (JPQL; dříve Java Persistence Query Language) je nezávislý na platformě objektově orientovaný dotazovací jazyk definována jako součást Jakarta Persistence (JPA; dříve Java Persistence API) specifikace.

JPQL se používá k vytváření dotazů proti entitám uloženým v relační databázi. Je silně inspirován SQL a jeho dotazy se podobají syntaxi dotazů SQL, ale fungují spíše proti objektům entit JPA než přímo s databázovými tabulkami.

Kromě načítání objektů (VYBRAT dotazy), JPQL podporuje set set AKTUALIZACE a VYMAZAT dotazy.

Příklady

Ukázkové třídy JPA, getry a settery jsou pro jednoduchost vynechány.

@Entityveřejnost třída Autor {    @Id    soukromé Celé číslo id;    soukromé Tětiva jméno;    soukromé Tětiva příjmení;     @ManyToMany    soukromé Seznam<Rezervovat> knihy;} @Entityveřejnost třída Rezervovat {    @Id    soukromé Celé číslo id;    soukromé Tětiva titul;    soukromé Tětiva isbn;     @ManyToOne    soukromé Vydavatel vydavatel;     @ManyToMany    soukromé Seznam<Autor> autoři;} @Entityveřejnost třída Vydavatel {    @Id    soukromé Celé číslo id;    soukromé Tětiva název;    soukromé Tětiva adresa;     @OneToMany(mapovánoBy = "vydavatel")    soukromé Seznam<Rezervovat> knihy;}

Pak by jednoduchý dotaz na získání seznamu všech autorů, seřazený podle abecedy, byl:

VYBRAT A Z Autor A OBJEDNAT PODLE A.jméno, A.příjmení

Chcete-li získat seznam autorů, které kdy publikoval XYZ Press:

VYBRAT ODLIŠNÝ A Z Autor A VNITŘNÍ PŘIPOJIT SE A.knihy b KDE b.vydavatel.název = 'XYZ Press'

JPQL podporuje pojmenované parametry, které začínají dvojtečkou (:). Mohli bychom napsat funkci vracející seznam autorů s daným příjmením takto:

import javax.persistence.EntityManager;import javax.persistence.TypedQuery;...veřejnost Seznam<Autor> getAuthorsByLastName(Tětiva příjmení) {    Tětiva Řetězec dotazu = „VYBERTE OD AUTORA“ +                         „WHERE a.lastName IS NULL OR LOWER (a.lastName) = LOWER (: lastName)“;    TypedQuery<Autor> dotaz = getEntityManager().createQuery(Řetězec dotazu, Autor.třída);    dotaz.setParameter("příjmení", příjmení);    vrátit se dotaz.getResultList();}

Hibernační dotazovací jazyk

JPQL je založen na Hibernační dotazovací jazyk (HQL), dřívější nestandardní dotazovací jazyk obsažený v Přezimovat objektově-relační mapování knihovna.

Hibernate a HQL byly vytvořeny před specifikací JPA. Od Hibernate 3 je JPQL podmnožinou HQL.

Viz také

externí odkazy