createQuery() | createSQLQuery() | createCriteria() |
---|---|---|
Creates Query Object | Creates Query Object | Creates Criteria Object |
Uses HQL Syntax | Uses DB Specific Syntax | Uses Entity Class |
The Columns of the rows retrieved would be name of the POJO Model Class | The Columns of the rows retrieved would be name of Native DB fields | Create sql query using Criteria object for setting the query parameters |
CRUD operation could be done | CRUD operation could be done | Only Read Operation is allowed |
Supports Interoperability between different DB’s | Does not support Interoperability since the query format should be changed when the DB is changed | Supports Interoperability between different DB’s |
Does not work without Model Class | Bean with columns of Table alone is Enough.No need for Entity class generation | Does not work without Model Class |
No need for mapping between Entity class object and Table Columns | The Bean Objects should be mapped with table Columns | No need for mapping |
createQuery – session.createQuery()
------------------------------------------------------ **DB_TBL_Col(tblEmployee)**| **POJO(Employee)** EMP_ID | employeeID ------------------------------------------------------
Query query = session.createQuery("from Employee E where E.employeeID = 'A%'"); List<Person> persons = query.list();