Java Persistence Query Language

Java Persistence Query Language (JPQL) объектке бағытталған платформаға байланысы жоқ мәліметтер базасының тілі.

Мысалдар

@Entity
public class Publisher {
    @Id
    private Integer id;
    private String name;
    private String address;

    @OneToMany(mappedBy = "publisher")
    private List<Book> books;
}

Then a simple query to retrieve the list of all authors, ordered alphabetically, would be:

SELECT a FROM Author a ORDER BY a.firstName, a.lastName

To retrieve the list of authors that have ever been published by XYZ Press:

SELECT DISTINCT a FROM Author a INNER JOIN a.books b WHERE b.publisher.name = 'XYZ Press'

JPQL supports named parameters, which begin with the colon (:). We could write a function returning a list of authors with the given last name as follows:

import javax.persistence.EntityManager;
import javax.persistence.Query;
import org.apache.commons.lang.StringUtils;

...

@SuppressWarnings("unchecked")
public List<Author> getAuthorsByLastName(String lastName) {
    String queryString = "SELECT a FROM Author a " +
                         "WHERE :lastName IS NULL OR LOWER(a.lastName) = :lastName";
    Query query = getEntityManager().createQuery(queryString);

    query.setParameter("lastName", StringUtils.lowerCase(lastName));
    return query.getResultList();
}

Hibernate Query Language

JPQL is based on the Hibernate Query Language (HQL), an earlier non-standard query language included in the Hibernate object-relational mapping library.

Hibernate and the HQL were created before the JPA specification.
As of Hibernate 3 JPQL is a subset of HQL.

Тағы қараңыз
 Object-relational mapping
 Hibernate (Java)
 Java Persistence API

 Сыртқы сілттемелер 
Full Query Language Syntax from The Java EE 5 Tutorial
JPA Queries and JPQL - a chapter of the ObjectDB Manual
Type safe Hibernate (HQL) query engine - TorpedoQuery

Санат:Java (платформасы)
Санат:Java EE