fbpx
Wikipedia

Java Persistence Query Language

Java Persistence Query Language (JPQL) es un lenguaje de consulta orientado a objetos independiente de la plataforma definido como parte de la especificación Java Persistence API (JPA).

Java Persistence Query Language
?
Información general
Apareció en 2009
Influido por SQL
Sistema operativo Multiplataforma

JPQL es un lenguaje de consultas que se basa en comandos sql pero con una variación ya que se usa la cache de la persistencia usado para hacer consultas contra las entidades almacenadas en una base de datos relacional. Está inspirado en gran medida por SQL, y sus consultas se asemejan a las consultas SQL en la sintaxis, pero opera con objetos entidad y también notar que hemos hecho trampa si intentamos copiar esta parte de aquí mismo de JPA en lugar de hacerlo directamente con las tablas de la base de datos.

Además de recuperar objetos (consultas SELECT), JPQL soporta consultas de actualización (UPDATE) y borrado (DELETE) .

Ejemplos

Ejemplo de clases JPA, los getters y setters han sido omitidos por simplicidad.

@Entity public class Autor { @Id private Integer id; private String nombre; private String apellidos; @ManyToMany private List<Libro> libros; } @Entity public class Libro { @Id private Integer id; private String titulo; private String isbn; @ManyToOne private Editorial editorial; @ManyToMany private List<Autor> autores; } @Entity public class Editorial { @Id private Integer id; private String nombre; private String direccion; @OneToMany(mappedBy = "editorial") private List<Libro> libros; } 

Dadas esas clases, una consulta simple para obtener la lista de todos los autores, ordenados alfabéticamente, sería:

SELECT a FROM Autor a ORDER BY a.nombre, a.apellidos 

Para recuperar la lista de autores que han sido publicados alguna vez por XYZ Press:

SELECT DISTINCT a FROM Autor a INNER JOIN a.libros b WHERE b.editorial.nombre = 'XYZ Press' 

JPQL admite parámetros con nombre, que comienzan por dos puntos (:). Se podría escribir una función que devuelve una lista de autores con el apellido indicado de la siguiente manera:

import javax.persistence.EntityManager; import javax.persistence.Query; import org.apache.commons.lang.StringUtils; ... @SuppressWarnings("unchecked") public List<Autor> getAutoresPorApellidos(String apellidos) { String queryString = "SELECT a FROM Autor a " +   "WHERE :apellidos IS NULL OR LOWER(a.apellidos) = :apellidos"; Query query = getEntityManager().createQuery(queryString); query.setParameter("apellidos", StringUtils.lowerCase(apellidos)); return query.getResultList(); } 

Hibernate Query Language

JPQL está basado en Hibernate Query Language (HQL), un lenguaje de consulta anterior no estándar incluido en la biblioteca de mapeo objeto-relacional Hibernate.

Hibernate y HQL se crearon antes de la especificación JPA. Hasta la versión Hibernate 3, JPQL es un subconjunto de HQL.

Véase también

Enlaces externos

  • Full Query Language Syntax en The Java EE 6 Tutorial
  • JPA Queries and JPQL - un capítulo del manual de ObjectDB
  • Type safe Hibernate (HQL) query engine - TorpedoQuery
  •   Datos: Q913681

java, persistence, query, language, jpql, lenguaje, consulta, orientado, objetos, independiente, plataforma, definido, como, parte, especificación, java, persistence, información, generalapareció, en2009influido, porsqlsistema, operativomultiplataforma, editar. Java Persistence Query Language JPQL es un lenguaje de consulta orientado a objetos independiente de la plataforma definido como parte de la especificacion Java Persistence API JPA Java Persistence Query Language Informacion generalAparecio en2009Influido porSQLSistema operativoMultiplataforma editar datos en Wikidata JPQL es un lenguaje de consultas que se basa en comandos sql pero con una variacion ya que se usa la cache de la persistencia usado para hacer consultas contra las entidades almacenadas en una base de datos relacional Esta inspirado en gran medida por SQL y sus consultas se asemejan a las consultas SQL en la sintaxis pero opera con objetos entidad y tambien notar que hemos hecho trampa si intentamos copiar esta parte de aqui mismo de JPA en lugar de hacerlo directamente con las tablas de la base de datos Ademas de recuperar objetos consultas SELECT JPQL soporta consultas de actualizacion UPDATE y borrado DELETE Indice 1 Ejemplos 2 Hibernate Query Language 3 Vease tambien 4 Enlaces externosEjemplos EditarEjemplo de clases JPA los getters y setters han sido omitidos por simplicidad Entity public class Autor Id private Integer id private String nombre private String apellidos ManyToMany private List lt Libro gt libros Entity public class Libro Id private Integer id private String titulo private String isbn ManyToOne private Editorial editorial ManyToMany private List lt Autor gt autores Entity public class Editorial Id private Integer id private String nombre private String direccion OneToMany mappedBy editorial private List lt Libro gt libros Dadas esas clases una consulta simple para obtener la lista de todos los autores ordenados alfabeticamente seria SELECT a FROM Autor a ORDER BY a nombre a apellidos Para recuperar la lista de autores que han sido publicados alguna vez por XYZ Press SELECT DISTINCT a FROM Autor a INNER JOIN a libros b WHERE b editorial nombre XYZ Press JPQL admite parametros con nombre que comienzan por dos puntos Se podria escribir una funcion que devuelve una lista de autores con el apellido indicado de la siguiente manera import javax persistence EntityManager import javax persistence Query import org apache commons lang StringUtils SuppressWarnings unchecked public List lt Autor gt getAutoresPorApellidos String apellidos String queryString SELECT a FROM Autor a WHERE apellidos IS NULL OR LOWER a apellidos apellidos Query query getEntityManager createQuery queryString query setParameter apellidos StringUtils lowerCase apellidos return query getResultList Hibernate Query Language EditarJPQL esta basado en Hibernate Query Language HQL un lenguaje de consulta anterior no estandar incluido en la biblioteca de mapeo objeto relacional Hibernate Hibernate y HQL se crearon antes de la especificacion JPA Hasta la version Hibernate 3 JPQL es un subconjunto de HQL Vease tambien EditarMapeo objeto relacional Hibernate Java Persistence APIEnlaces externos EditarFull Query Language Syntax en The Java EE 6 Tutorial JPA Queries and JPQL un capitulo del manual de ObjectDB Type safe Hibernate HQL query engine TorpedoQuery Datos Q913681Obtenido de https es wikipedia org w index php title Java Persistence Query Language amp oldid 125249285, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos