Pregunta Diferencia entre consulta, consulta nativa, consulta con nombre y consulta escrita [cerrada]


¿Cuáles son las diferencias entre una consulta, una consulta nativa, una consulta con nombre y una consulta escrita? ¿La consulta de 'solo parado' existe, o es solo una abreviación? En mi opinión, una consulta nativa es una consulta escrita en sql simple, mientras que una consulta con nombre se relaciona con entidades (mapeo de hibernación). ¿Alguien puede explicar esto brevemente?


32
2017-10-20 12:27


origen


Respuestas:


Consulta

La consulta se refiere a la consulta JPQL / HQL con una sintaxis similar a SQL generalmente utilizada para ejecutar sentencias DML (operaciones CRUD).

En JPA, puede crear una consulta usando entityManager.createQuery(). Puedes mirar dentro API para más detalles.

En Hibernate, usas session.createQuery()"

NativeQuery

La consulta nativa se refiere a las consultas sql reales (en referencia a los objetos reales de la base de datos). Estas consultas son las declaraciones SQL que se pueden ejecutar directamente en la base de datos utilizando un cliente de base de datos.

JPA: entityManager.createNativeQuery() Hibernate (implementación no JPA): session.createSQLQuery()

NamedQuery

Similar a cómo se define la constante. NamedQuery es la forma en que defines tu consulta dándole un nombre. Puede definir esto en el archivo de mapeo en hibernación o también usando anotaciones a nivel de entidad.

TypedQuery

TypedQuery le brinda la opción de mencionar el tipo de entidad cuando crea una consulta y, por lo tanto, cualquier operación posterior no necesita una conversión explícita para el tipo previsto. Mientras que la normal Query API no devuelve el tipo exacto de objeto que espera y necesita lanzar.


40
2017-10-20 13:03