Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.
HQL es el lenguaje de consultas que usa Hibernate para recuperar información y manipular la base de datos. Su sintaxis recuerda mucho a SQL, pero las consultas no se realizarán sobre las tablas de la base de datos, sino sobre los objetos vinculados a una tabla en la base de datos.
Definir consultas
//recupero una colección de objetos
TypedQuery<Libro> hqlQuery1 = session.createQuery("FROM Libro");
//recupero un String en vez de un objeto
TypedQuery<String> hqlQuery2 = session.createQuery("SELECT v.matricula FROM Vehiculo v");
//Consulta ordenada
TypedQuery<Libro> hqlQuery3 = session.createQuery("FROM Libro ORDER BY id");
//Consulta con condiciones
TypedQuery<Libro> hqlQuery4 = session.createQuery("FROM Libro WHERE precio>10 AND anio_publicacion>1984");
Ejecutar consulta
List<Libro> libros = hqlQuery.getResultList();
Libro libro = hqlQuery.getSingleResult();
Eliminar un registro
TypedQuery<Paciente> hqlQuery = session.createQuery("DELETE FROM Paciente WHERE id=:condicion");
hqlQuery.setParameter("condicion", 4);
hqlQuery.executeUpdate();
Consulta relacionada
Evaluar si una propiedad del bean es igual a cierto valor
(no funciona si la propiedad es una lista)
String queryString = "FROM Libro l WHERE l.autor.nombre LIKE :condicion";
Evaluar si uno de los los elementos de la propiedad del bean consultado es igual a cierto valor
String queryString = " SELECT a FROM Autor a JOIN a.libros l WHERE l.titulo='titulox11'";
TypedQuery hqlQuery = session.createQuery(queryString);
Nota: La siguiente línea es equivalente a la línea en verde (pero utilizando join):
String queryString = "SELECT l FROM Libro l JOIN l.autor a WHERE a.nombre='nombre1'";
Las palabras escritas en rojo son propiedades de las clases, no son campos de la base de datos.