मैं हाइबरनेट 3.x से नवीनतम हाइबरनेट 5.2.0 अंतिम में अपग्रेड कर रहा हूं। मेरे पुराने कोड में हम नीचे मानदंड प्रश्नों का उपयोग कर रहे थे।Hibernate 5.2 में साझा सत्र Contract.createCriteria (क्लास persistentClass) के लिए सही विकल्प 5.2
Session session =getHibernateTemplate().getSessionFactory().getCurrentSession();
Criteria criteria = session.createCriteria(Employee.class);
criteria.add(Restrictions.eq("Department", department));
return criteria.list();
अब हाइबरनेट 5.2.0 से createCriteria() विधि मान्य नहीं है। निम्नलिखित दस्तावेज से कौन सा पाया जा सकता है।
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-
प्रलेखन जेपीए मानदंड का उपयोग करने का सुझाव देते हैं। नीचे दिए गए पृष्ठभूमि के आधार पर मेरे कुछ प्रश्न नीचे दिए गए हैं।
जब से हम EntityManager और भारी HibernateDAOSupport और HibernateTemplate पर निर्भर उपयोग नहीं कर रहे, मैं कैसे सत्र या sessionFactory का उपयोग कर JAP मानदंड का उपयोग कर सकते हैं?
यदि मैं नीचे दिए गए कोड स्निपेट में डिटेक्टेडक्रिटिया का उपयोग करता हूं तो यह पिछले कार्यान्वयन के समान होगा या नीचे कोड हमें सत्र स्वतंत्र परिणाम देगा?
DetachedCriteria criteria = DetachedCriteria.forClass(Employee.class); criteria.add(Restrictions.eq("Department", department)); return (List<Employee>) getHibernateTemplate().findByCriteria(criteria);
- एक विकल्प के रूप
इसके अलावा, अगर मैं नीचे उल्लेख रास्ते में DetachedCriteria का उपयोग यह मेरे पुराने कोड के रूप में एक ही प्रभाव पड़ता है जा रहा है।
Session session =getHibernateTemplate().getSessionFactory().getCurrentSession(); DetachedCriteria criteria = DetachedCriteria.forClass(Employee.class); criteria.add(Restrictions.eq("Department", department)); return criteria .getExecutableCriteria(session).list();
यदि इस से निपटने के लिए सुझाव है कि कृपया के रूप में मैं HibernateDAOSupport और HibernateTemplate के उपयोग को बदलने के लिए नहीं करना चाहती एक बेहतर तरीका है।
मुझे खुशी है कि मैं दुनिया हाइबरनेट में इस अचानक परिवर्तन के साथ भ्रमित में अद्वितीय नहीं कर रहा हूँ कर रहा हूँ (पर विचार मैं 5.1 से आया)। मुझे नहीं पता कि मापदंडों के साथ कैसे कार्यान्वित करना है या 5.1 पर वापस जाना है, यह सोचना शुरू करना है या नहीं। – russellhoff
इस पर अच्छा उदाहरण: [सत्र की विधि बनाने का मानदंड बहिष्कृत किया गया है, मुझे वर्ग मानदंड स्थापित करने के लिए कैसे आगे बढ़ना चाहिए?] (Https://teamtreehouse.com/community/the-sessions-method-createcriteria-is-deprecated-how-should- i-आगे बढ़ना के लिए स्थापित-वर्ग-मापदंड) – rvheddeg