Java Persistence Query Language | |
---|---|
Kieliluokka | kyselyn kieli |
Esiintyi | 2009 |
Vaikutettu | SQL |
Verkkosivusto |
eclipse-ee4j.github.io/… ( englanti) eclipse-ee4j.github.io/… |
Java Persistence Query Language ( JPQL ) on alustasta riippumaton oliopohjainen kyselykieli , joka on osa Java Persistence API (JPA) -spesifikaatiota.
JPQL:ää käytetään kyselyjen kirjoittamiseen relaatiotietokantaan tallennettuihin entiteeteihin. JPQL on monella tapaa samanlainen kuin SQL , mutta toisin kuin jälkimmäinen, se toimii JPA-yksiköitä vastaan tehdyillä kyselyillä, toisin kuin suorilla kyselyillä tietokantataulukoita vastaan.
Objektien ( SELECT-kyselyt) hankkimisen lisäksi JPQL tukee kyselyitä, jotka perustuvat - UPDATEja -operaattoreihin DELETE.
Oletetaan, että meillä on JPA-entiteetit, jotka on määritelty seuraavasti (ominaisuuksien setter- ja getter-menetelmät on jätetty pois yksinkertaisuuden vuoksi):
@Entity public class Tekijä { @Id yksityinen kokonaislukutunnus ; _ yksityinen merkkijono etunimi ; yksityinen merkkijono sukunimi ; @ManyToMany yksityinen luettelo < Kirja > kirjat ; } @Entity public class Kirja { @Id yksityinen kokonaislukutunnus ; _ yksityinen merkkijono otsikko ; yksityinen merkkijono isbn ; @ManyToOne yksityinen julkaisija ; _ @ManyToMany yksityinen luettelo < Kirjoittaja > kirjoittajat ; } @Entity public class Publisher { @Id yksityinen kokonaislukutunnus ; _ yksityinen merkkijononimi ; _ yksityinen merkkijonoosoite ; _ @OneToMany ( mappedBy = "julkaisija" ) yksityinen Luettelo < Kirja > kirjat ; }Seuraava kysely palauttaa luettelon kirjoittajista aakkosjärjestyksessä:
VALITSE LÄHESTÄ Tee TILAUKS . _ _ _ _ etunimi , a . sukunimiPyydä luettelo XYZ Pressin koskaan julkaisemista kirjoittajista:
VALITSE EROTTAA a Kirjoittaa SISÄINEN LIITY a . _ _ kirjat b MISSÄ b . kustantaja . nimi = 'XYZ Press'JPQL tukee nimettyjä parametreja, jotka alkavat kaksoispisteellä (:). Funktio, joka palauttaa luettelon kirjoittajista tietyllä sukunimellä, näyttää tältä:
tuonti javax.persistence.EntityManager ; tuonti javax.persistence.Query ; ... @SuppressWarnings ( "valitsematon" ) public List < Tekijä > getAuthorsByLastName ( String sukunimi ) { String queryString = "VALITSE Tekijästä a " + "WHERE LOWER(a.sukunimi) = :sukunimi" ; Kyselykysely = getEntityManager ( ). createQuery ( queryString ); kysely . setParameter ( "sukunimi" , sukunimi.pieniin kirjaimiin ( ) ); paluukysely . _ getResultList (); }JPQL perustuu Hibernate Query Language (HQL) -kyselykieleen, joka on aikaisempi ei-standardoitu kyselykieli, joka sisältyy Hibernate -objektien relaatiokartoituskirjastoon .
Hibernate ja HQL luotiin ennen JPA:n määrittelyn tuloa. JPQL on HQL-kyselykielen osajoukko.
Java Persistence API | |
---|---|
|