Las Entidades son sensibles a mayúsculas y minúsculas en los nombres de la Entidad y los campos.
Ejemplo de una Entidad Empleado.
Si queremos recuperar todos los datos de un empleado:
SELECT e FROM Empleado eLa cláusula from no se refiere a una tabla, sino a una clase, en nuestro ejemplo, la clase Empleado.
El resultado de la consulta es un Entity Bean.
Para ejecutar esta consulta:
Query consulta = entityManager.createQuery("SELECT e FROM Empleado e"); List<Empleado> empleados= consulta.getListResult();También se utilizan las anotaciones @NamedQuery y @NamedQueries. Para definir una única consulta en la clase de un Entity Bean:
@Entity @Table(name = "EMPLEADOS") @NamedQuery(name="todosempleados", query="SELECT e FROM Empleado e") public class Empleado { //Métodos y elementos de la clase Empleado }Para definir más de una consulta dentro de un entity Bean se utiliza la anotación @NamedQueries que contiene un conjunto de consultas.
@Entity @Table(name = "Empleado") @NamedQueries(value={ @NamedQuery(name=" todosempleados", query="SELECT e FROM Empleado e") , @NamedQuery(name=" todosempleadosorden", query="SELECT e FROM Empleado e ORDER BY e.Nombre")} ) public class Empleado { //Métodos y elementos de la clase Empleado }Para ejecutarlas:
Query consulta = entityManager.createNamedQuery("todosempleados"); List<Empleado> empleados = consulta.getResultList();Para utilizar parámetros posicionales, el parámetro debe indicarse en la cláusula where de la consulta con el prefijo ?, y a continuación el número posicional del parámetro.
SELECT e FROM Empleado e WHERE e.Nombre = ?1Luego, al ejecutarla, se establece el valor del parámetro según su posición:
Query consulta = entityManager.createQuery("SELECT e FROM Empleado e WHERE e.Nombre = ?1"); consulta.setParameter(1, "SHUM"); Empleado emp = consulta.getSingleResult();Para utilizar parámetros por nombre, el parámetro debe indicarse en la cláusula where de la consulta con el prefijo: y a continuación el nombre del parámetro:
SELECT e FROM Empleado e WHERE e.Nombre = :nombreempleadoPosteriormente, al ejecutarla, se establece el valor del parámetro según su nombre:
Query consulta = entityManager.createQuery("SELECT e FROM Empleado e WHERE e.Nombre = :nombreempleado"); consulta.setParameter("nombreempleado", "SHUM"); Empleado emp = consulta.getSingleResult();
No hay comentarios:
Publicar un comentario