Search: in
Java Persistence Query Language
Java Persistence Query Language in Encyclopedia Encyclopedia
  Tutorials     Encyclopedia     Dictionary     Directory  
       
Java Persistence Query Language Email this to a friend      Java Persistence Query Language

Java Persistence Query Language

Java Persistence Query Language
Java Persistence Query Language

Java Persistence Query Language

The Java Persistence Query Language (JPQL) is a platform-independent object-oriented query language defined as part of the Java Persistence API specification.

JPQL is used to make queries against entities stored in a relational database. It is heavily inspired by SQL, and its queries resemble SQL queries in syntax, but operate against JPA entity objects rather than directly with database tables.

In addition to retrieving objects (SELECT queries), JPQL supports bulk UPDATE and DELETE queries.

Contents


Examples

Suppose we have JPA entity classes defined like this (getter and setter methods omitted for simplicity):

@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;
}

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

To retrieve the list of authors that have ever been published by 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.

See also

External links


Java Persistence Query Language
Java Persistence Query Language
Java Persistence Query Language

Source: Wikipedia | The above article is available under the GNU FDL. | Edit this article

Java Persistence Query Language
Java Persistence Query Language
Search for Java Persistence Query Language in Tutorials
Search for Java Persistence Query Language in Encyclopedia
Search for Java Persistence Query Language in Dictionary
Search for Java Persistence Query Language in Open Directory
Search for Java Persistence Query Language in Store
Search for Java Persistence Query Language in PriceGig


Help build the largest human-edited directory on the web.
Submit a Site - Open Directory Project - Become an Editor

Java Persistence Query Language
Advertisement

Advertisement



Java Persistence Query Language in Encyclopedia
Java Persistence Query Language top Java Persistence Query Language

Home - Add TutorGig to Your Site - Disclaimer

©2008-2009 TutorGig.com. All Rights Reserved. Privacy Statement