Jakarta dotazovací jazyk perzistence - Jakarta Persistence Query Language
![]() | tento článek ne uvést žádný Zdroje.Červen 2010) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
OS | Cross-platform |
---|---|
webová stránka | zatmění-ee4j |
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.