2010-08-13 13 views
9

मैं JBoss Embedded संस्करण beta3.SP10 उपयोग कर रहा हूँ और मैं एक हठ बग है कि कुछ हाइबरनेट संस्करण में ठीक किया जाना चाहिए का सामना करना पड़ रहा है। दुःख की बात है मैं नहीं जानता कि हाइबरनेट का कौन सा संस्करण मेरी JBoss एंबेडेड में प्रयोग किया जाता है और इस जानकारी, hibernate-all.jar यह में बंडल एक org.hibernate.Version वर्ग शामिल नहीं है, और न ही एक MANIFEST को खोजने के लिए एक तरह से नहीं मिल सका।हाइबरनेट संस्करण?

मैं org.hibernate.Version का उपयोग किए बिना वर्तमान में लोड हाइबरनेट संस्करण कैसे मिल सकती है?

+0

आपका उपयोग केस वास्तव में क्या है? यदि आपको यह आवश्यकता है तो 'संस्करण' कक्षा का उपयोग क्यों नहीं करें? –

+0

मेरे हाइबरनेट वितरण में एआरएम इस वर्ग में नहीं है ... ऐसा लगता है कि यह निकटतम अतीत में जोड़ा गया है। मेरे पास उपयोग का मामला एक बग है जिसे मैं समझ नहीं सकता: http://forum.hibernate.org/viewtopic.php देखें?एफ = 1 और टी = 1006411 ऐसा इसलिए है क्योंकि मैं टॉमकैट पर एम्बेडेड जेबॉस का उपयोग करता हूं और यह वितरण हाइबरनेट के साथ आता है जिसका संस्करण मुझे नहीं पता। संभावना है कि एक नया संस्करण इस मुद्दे को हल कर सकता है (मैंने एक बग रिपोर्ट के लिए एक लिंक पोस्ट किया है)। – Kawu

उत्तर

21

इस प्रयास करें,

System.out.println(org.hibernate.Version.getVersionString()); 

found here

0

वास्तव में, यह क्या हाइबरनेट मॉड्यूल का सही संस्करण उपयोग किया जाता है मुश्किल लगता है। कुछ सुझाव:

  1. जांच करें कि आपके हाइबरनेट JAR उस में संस्करण के साथ एक META-INF/MANIFEST.MF है। ऐसा लगता है कि जेबॉस लोग इस समय चींटियों का उपयोग कर रहे थे और मैनिफेस्ट संस्करण प्रदान नहीं करता है।

  2. खुदाई JBoss Embedded SVN पता लगाने के लिए क्या वे वास्तव में कर रहे हैं।

  3. JBoss embedded beta3.SP12 (जो आप मेवेन रिपोजिटरी से प्राप्त कर सकते हैं) के साथ प्रयास करें। हाइबरनेट-सब एक बंडल हाइबरनेट ईएम 3.4.0.GA. युक्त साथ बदलने के लिए

  4. कोशिश

मैं विकल्प 3 और 4 कोशिश करता हूं।

+0

मैंने पहले यह कोशिश की। वहां कोई संस्करण नहीं है। मैंने अभी https://forum.hibernate.org/viewtopic.php?f=1&t=1003161&start=0 पाया लेकिन मुझे नहीं पता कि उस परम को कहां रखा जाए। मैंने web.xml में संदर्भ param के रूप में प्रयास किया, लेकिन यह काम नहीं करता है। बीटीडब्ल्यू जेबॉस एम्बेडेड beta3.SP10 है, जो 2009-09-09 से नवीनतम है। – Kawu

+0

@ क्वू लॉगिंग 'संस्करण' वर्ग का उपयोग कर संस्करण को लॉग करता है ... –

6

यह सरल जावा कोड हाइबरनेट संस्करण प्राप्त करता है।

package com.test; 
public class TestBean { 
public static void main(String[] args) { 
    try { 
     String hibernateVersion = org.hibernate.annotations.common.Version.VERSION; 
     System.out.println("Hibernate Version: "+ hibernateVersion); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
} 

आउटपुट:Hibernate Version: 3.1.0.GA

0

मैं @Shell के रास्ते नहीं @pudaykiran की है कि पसंद करते हैं,। असल में, मैंने पाया कि इन दो तरीकों से मेरे मामले में अलग-अलग इनपुट मिलते हैं। के रूप में कहा @pudaykiran, मुझे मिल गया:

3.2.0 अंतिम

और @Shell के रूप में कहा:

3.5.4 अंतिम

मुझे लगता है कि 3.5.4 अंतिम संस्करण की org.hibernate.annotations.common इस्तेमाल किया पुराना वर्जन। अगर मैं ग़लत हूं तो मेरी गलती सुझाएं।

4

संस्करण प्राप्त करने का एक और तरीका।

System.out.println(org.hibernate.cfg.Environment.VERSION) 

यह हाइबरनेट के पुराने संस्करण के लिए है। जैसे 3.3.1.GA

+0

हां, पहले ver iee 3.2.x के लिए, केवल यह काम करेगा। पहले की अवधि में, संस्करण निरंतर annotations.common में प्रकट नहीं होता है। – peterong