Java Persistence Query Language

Java Persistence Query Language
Java Persistence Query Language
Испытал влияние:

SQL

Java Persistence Query Language (JPQL) — платформо-независимый объектно-ориентированный язык запросов являющийся частью Java Persistence API спецификации.

JPQL используется для написания запросов к сущностям, хранящимся в реляционной базе данных. JPQL во многом похож на SQL, но в отличие от последнего оперирует запросами составленными по отношению к сущностям JPA, в отличие от прямых запросов к таблицам базы данных.

В дополнение к получению объектов (SELECT запросы), JPQL поддерживает запросы основанные на операторах UPDATE и DELETE.

Содержание

Примеры

Предположим, имеются JPA сущности, определённые следующим образом (методы установки и получения значения свойств для простоты опущены):

@Entity
public class Author {
    @Id
    private Integer id;
    private String firstName;
    private String lastName;
 
    @ManyToMany
    private List<Book> books;
}
 
@Entity
public class Book {
    @Id
    private Integer id;
    private String title;
    private String isbn;
 
    @ManyToOne
    private Publisher publisher;
 
    @ManyToMany
    private List<Author> authors;
}
 
@Entity
public class Publisher {
    @Id
    private Integer id;
    private String name;
    private String address;
 
    @OneToMany(mappedBy = "publisher")
    private List<Book> books;
}

Следующий запрос позволяет получить список авторов, упорядоченных в алфавитном порядке:

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

Запрос для получения списка авторов, когда-либо опубликованных издательством «XYZ Press»:

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

JPQL поддерживает именованные параметры, которые начинаются с двоеточия (:). Функция, возвращающая список авторов с данной фамилией будет выглядеть следующим образом:

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 основан на Hibernate Query Language (HQL), более раннем не стандартизованном языке запросов, включённом в библиотеку объектно-реляционного отображения Hibernate.

Hibernate и HQL были созданы до появления спецификации JPA. JPQL является подмножеством языка запросов HQL.

См. также

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Полезное


Смотреть что такое "Java Persistence Query Language" в других словарях:

  • Java Persistence API — (JPA)  API, входящий с версии Java 5 в состав платформ Java SE и Java EE, предоставляет возможность сохранять в удобном виде Java объекты в базе данных[1]. Существует несколько реализаций этого интерфейса, одна из самых популярных использует …   Википедия

  • Java Persistence API — Desarrollador Sun Microsystems http://java.sun.com/javaee/... Información general Género …   Wikipedia Español

  • Java Persistence API — The Java Persistence API, sometimes referred to as JPA, is a Java programming language framework that allows developers to manage relational data in Java Platform, Standard Edition and Java Platform, Enterprise Edition applications.The Java… …   Wikipedia

  • Java Persistence API — Die Java Persistence API (auch JPA) ist eine Schnittstelle für Java Anwendungen, die die Zuordnung und die Übertragung von Objekten zu Datenbankeinträgen vereinfacht. Sie vereinfacht die Lösung des Problems der objekt relationalen Abbildung, das… …   Deutsch Wikipedia

  • Hibernate Query Language — Hibernate (Framework) Entwickler: JBoss (Red Hat) Aktuelle Version: 3.3.1 (11. September 2008) Betriebssystem: plattformübergreifend Kategorie …   Deutsch Wikipedia

  • Java Data Objects — (JDO) is a specification of Java object persistence. One of its features is a transparency of the persistent services to the domain model. JDO persistent objects are ordinary Java programming language classes; there s no requirement for them to… …   Wikipedia

  • Java Database Connectivity — (JDBC) is an API for the Java programming language that defines how a client may access a database. It provides methods for querying and updating data in a database. JDBC is oriented towards relational databases. The Java 2 Platform, Standard… …   Wikipedia

  • Hibernate (Java) — Infobox Software name = Hibernate developer = Red Hat latest release version = 3.3.1 GA latest release date = release date|2008|09|11 operating system = Cross platform (JVM) latest preview version = latest preview date = platform = Java Virtual… …   Wikipedia

  • SQL — This article is about the database language. For the airport with IATA code SQL, see San Carlos Airport. SQL Paradigm(s) Multi paradigm Appeared in 1974 Designed by Donald D. Chamberlin Raymond F. Boyce Developer …   Wikipedia

  • JPA — Die Java Persistence API (auch JPA) ist eine Schnittstelle für Java Anwendungen, die die Zuordnung und die Übertragung von Objekten zu Datenbankeinträgen vereinfacht. Sie vereinfacht die Lösung des Problems, Laufzeit Objekte einer Java Anwendung… …   Deutsch Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»