Qualcuno può dirmi la differenza tra Hibernate:
createCriteria
createQuery
createSQLQuery
Qualcuno può dirmi quali dati restituiscono queste tre funzioni, cq indirizzarmi ad un link corretto e semplice per studiare queste funzioni di Hibernate?
Per creare una query nel framework ORM di Hibernate, esistono tre diversi tipi. I seguenti sono i tre modi per creare un’istanza di query:
session.createQuery()
session.createSQLQuery()
session.createCriteria()
Guarda nei dettagli di ogni categoria in dettaglio.
Session.createQuery()
Il metodo createQuery () crea un object Query usando la syntax HQL. Per esempio:
Query query = session.createQuery("from Student s where s.name like 'k%'");
Session.createSQLQuery()
Il metodo createSQLQuery () crea l’object Query utilizzando la syntax SQL nativa. Per esempio:
Query query = session.createSQLQuery("Select * from Student");
Session.createCriteria()
Il metodo createCriteria () crea l’object Criteria per l’impostazione dei parametri di query. Questa è una funzione più utile per coloro che non vogliono scrivere la query in mano. È ansible specificare qualsiasi tipo di syntax complicata utilizzando l’API Criteri.
Criteria criteria = session.createCriteria(Student.class);
1. session.createQuery()-> Can create query using HQL and can perform CRUD Operations
Esempio:
Query query = session.createQuery("from Student"); List list=quey.list(); Query query = session.createQuery("update Student where studentid=9"); int result=query.executeUpdate(); Query query = session.createQuery("delete Student where studentid="+ studentId); int result=query.executeUpdate(); Query query = session.createQuery("insert into Student where studentid="+ studentId); int result=query.executeUpdate();
------------------------ PERSON ------------------------ **DB_Column**| **POJO** PERSON_ID | personID ------------------------
createQuery ()
stai usando i campi Pojo. Usando la syntax HQL.
Query query = session.createQuery("from Person s where s.personID like 'A%'"); // returns: List persons = query.list();
createSQLQuery ()
Stai usando i campi Native | DB. Dopo aver cercato su google qualche sito, Came saprà che cancellerà anche la cache poiché ibernazione non sa cosa hai eseguito.
Query query = session.createSQLQuery("select s.* from Person s where s.person_ID like 'A%'"); // returns: List
createCriteria ()
Leggi solo query
Criteria criteria = session.createCriteria(Person.class); criteria.add(Restrictions.like("personId", "A%")); List persons = criteria .list();
createSQLQuery – è per query SQL nativo che è selezionato da te con driver cfg jdbc o qualcos’altro.
createQuery – è per la query in ibernazione che ti fornisce query indipendenti che ti fanno girare su molti database usando API e altri vantaggi.
createCriteria – è meglio usare per le query semplici su db a causa della sua semplicità.
Spero che questo ti aiuta!