Ich aktualisiere auf Hibernate 5.2.0 FINAL von Hibernate 3.x. In meinem alten Code verwendeten wir Kriterienabfragen wie unten.Korrekte Alternative zu SharedSessionContract.createCriteria (Klasse persistente Klasse) in Hibernate 5.2
Ab Hibernate 5.2.0 ist die Methode createCriteria() veraltet. Welche finden Sie in der folgenden Dokumentation.
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-
Die Dokumentation schlägt JPA Kriterien zu verwenden. Im Folgenden sind die wenigen Fragen, die ich auf dem obigen Hintergrund habe.
Da wir nicht mit den EntityManager und stark abhängig von der HibernateDAOSupport und HibernateTemplate, wie ich die JAP Criteria mit der Sitzung oder session verwenden kann?
Wenn ich DetachedCriteria wie im folgenden Codefragment verwende, ist es dasselbe wie bei der vorherigen Implementierung oder der folgende Code gibt uns sitzungsunabhängige Ergebnisse?
DetachedCriteria criteria = DetachedCriteria.forClass(Employee.class); criteria.add(Restrictions.eq("Department", department)); return (List<Employee>) getHibernateTemplate().findByCriteria(criteria);
auch als Alternative, wenn ich die DetachedCriteria Verwendung in unten genannten Weise wird es die gleiche Wirkung wie mein alten Code haben.
Session session =getHibernateTemplate().getSessionFactory().getCurrentSession(); DetachedCriteria criteria = DetachedCriteria.forClass(Employee.class); criteria.add(Restrictions.eq("Department", department)); return criteria .getExecutableCriteria(session).list();
Wenn es ein besserer Weg, damit umzugehen ist, bitte vorschlagen, wie ich will, um die Verwendung von HibernateDAOSupport und HibernateTemplate nicht ändern.
Ich bin froh, dass ich bin nicht die einzige in der Welt mit dieser plötzlichen Änderung in Hibernate verwirrt (unter Berücksichtigung Ich kam von 5.1). Ich weiß nicht, ob ich darüber nachdenken soll, wie man mit Kriterien umsetzt oder auf 5.1 zurückgreift. – russellhoff
Schönes Beispiel zu: [die Methode createCriteria der Session ist veraltet, wie soll ich fortfahren, um Klassenkriterien zu erstellen?] (Https://teamtreehouse.com/community/the-sessions-method-createcriteria-is-deprecated-how-should- i-procee-for-etabling-Klassenkriterien) – rvheddeg