Sto aggiornando all'ultima versione di Hibernate 5.2.0 FINAL da Hibernate 3.x. Nel mio vecchio codice stavamo usando le query sui criteri come di seguito.Correggere l'alternativa a SharedSessionContract.createCriteria (Classe persistentClass) in Hibernate 5.2
Session session =getHibernateTemplate().getSessionFactory().getCurrentSession();
Criteria criteria = session.createCriteria(Employee.class);
criteria.add(Restrictions.eq("Department", department));
return criteria.list();
Ora da Hibernate 5.2.0 il metodo createCriteria() è stato deprecato. Che può essere trovato dalla seguente documentazione.
https://docs.jboss.org/hibernate/orm/5.2/javadocs/deprecated-list.html https://docs.jboss.org/hibernate/orm/5.2/javadocs/org/hibernate/SharedSessionContract.html#createCriteria-java.lang.Class-
La documentazione suggerisce di utilizzare criteri di JPA. Qui di seguito sono le poche domande che ho basato sullo sfondo di cui sopra.
Dato che non stiamo usando l'EntityManager e fortemente dipendente dal HibernateDAOSupport e HibernateTemplate, come posso utilizzare i criteri di JAP utilizzando la sessione o sessionFactory?
Se utilizzo DetachedCriteria come nello snippet di codice seguente, sarà uguale all'implementazione precedente o il codice riportato di seguito ci fornirà risultati indipendenti dalla sessione?
DetachedCriteria criteria = DetachedCriteria.forClass(Employee.class); criteria.add(Restrictions.eq("Department", department)); return (List<Employee>) getHibernateTemplate().findByCriteria(criteria);
anche in alternativa, Se uso il DetachedCriteria in maniera seguito menzionato sta andando ad avere lo stesso impatto del mio vecchio codice.
Session session =getHibernateTemplate().getSessionFactory().getCurrentSession(); DetachedCriteria criteria = DetachedCriteria.forClass(Employee.class); criteria.add(Restrictions.eq("Department", department)); return criteria .getExecutableCriteria(session).list();
Se c'è un modo migliore per affrontare questo si prega di suggerire come io non voglio cambiare l'uso di HibernateDAOSupport e HibernateTemplate.
Sono contento di non essere l'unico al mondo confuso con questo improvviso cambiamento di Hibernate (considerando vengo 5.1). Non so se iniziare a pensare come implementare con criteri o tornare alla 5.1. – russellhoff
Bel esempio su: [il metodo Session's createCriteria è deprecato, come dovrei procedere per stabilire i criteri di Classe?] (Https://teamtreehouse.com/community/the-sessions-method-createcriteria-is-deprecated-how-should- i-procedo-per-la definizione di criteri di classe-) – rvheddeg