Difference between Hibernate createCriteria, createQuery, createSQLQuery functions

后端 未结 4 1866
刺人心
刺人心 2020-12-02 17:05

Can anyone please tell me the difference between Hibernate\'s:

  • createCriteria
  • createQuery
  • createSQLQuery
4条回答
  •  Happy的楠姐
    2020-12-02 17:40

    ------------------------
            PERSON
    ------------------------
    **DB_Column**| **POJO**
    PERSON_ID    | personID
    ------------------------
    

    createQuery()

    you are using pojo fields. Using HQL syntax.

    Query query = session.createQuery("from Person s where s.personID like 'A%'");
    
    //    returns: 
    
    List persons = query.list();
    

    createSQLQuery()

    You are using Native|DB fields. After googling some site, Came to know this will also clear the cache as hibernate don't know the what you have executed.

    Query query = session.createSQLQuery("select s.* from Person s where s.person_ID like 'A%'");
    
    //    returns: 
    
    List persons = query.list();.
    

    createCriteria()

    • Create sql query using Criteria object for setting the query parameters.
    • Useful when switching DB.
    • Read only query

      Criteria criteria = session.createCriteria(Person.class);
      criteria.add(Restrictions.like("personId", "A%"));
      List persons = criteria .list();
      

提交回复
热议问题