2016-02-06 5 views
7

क्या मैं @Entity एनोटेटेड बीन्स से SessionFactory बनाने के लिए स्वचालित रूप से पैकेज स्कैन करने के लिए हाइबरनेट को कॉन्फ़िगर कर सकता हूं?स्वचालित रूप से सत्र फ़ैक्टरी बनाने के लिए स्कैन पैकेज को हाइबरनेट कर सकते हैं?

वर्तमान में मैं

Configuration config = new Configuration() ; 
config.addAnnotatedClass(MyEntity.class); 

उपयोग कर रहा हूँ मैं मैपिंग कॉन्फ़िगर करने के लिए hibernate.cfg.xml उपयोग करने के लिए नहीं करना चाहती।

कृपया ध्यान दें कि मैं इसे किसी भी स्प्रिंग या ऐसे ढांचे के बिना सादे जावा प्रोजेक्ट में प्राप्त करना चाहता हूं।

वसंत का उपयोग करके इसी तरह के प्रश्न का उत्तर दिया गया है लेकिन मैं इसे वसंत या अन्य ढांचे के बिना प्राप्त करना चाहता हूं। मैं कुछ सरल पुस्तकालय के लिए खुला हूं जो यह करता है।

उत्तर

5

नहीं। आप अंतिम हाइबरनेट 5 संस्करण के साथ भी लगातार कक्षाओं के लिए संकुल स्कैन करने के लिए हाइबरनेट नहीं कह सकते हैं। Configuration में विधि addPackage() है, लेकिन यह "पैकेज-स्तर मेटाडाटा" पढ़ने के लिए है (.package-info - फ़ाइलें)।

आप वसंत का उपयोग नहीं करना चाहते हैं, तो आप क्या कर सकते हैं:

का प्रयोग धाराप्रवाह-हाइबरनेट

आप fluent-hibernate पुस्तकालय से उपयोग कर सकते हैं (आप अन्य जार है की जरूरत नहीं होगी , सिवाय पुस्तकालय)

हाइबरनेट 4 के लिए और हाइबरनेट 5:

Configuration configuration = new Configuration(); 
EntityScanner.scanPackages("my.com.entities", "my.com.other.entities") 
    .addTo(configuration); 
SessionFactory sessionFactory = configuration.buildSessionFactory(); 

एक नया हाइबरनेट 5 बूटस्ट्रैपिंग एपीआई का उपयोग करना:

List<Class<?>> classes = EntityScanner 
     .scanPackages("my.com.entities", "my.com.other.entities").result(); 

MetadataSources metadataSources = new MetadataSources(); 
for (Class<?> annotatedClass : classes) { 
    metadataSources.addAnnotatedClass(annotatedClass); 
} 

SessionFactory sessionFactory = metadataSources.buildMetadata() 
    .buildSessionFactory(); 

अन्य पुस्तकालयों

आप पहले से ही एक पुस्तकालय है कि स्कैनिंग के लिए इस्तेमाल किया जा सकता, एक उदाहरण Reflections के लिए उपयोग करते हैं का उपयोग करना, वहाँ है इकाई स्कैनिंग के लिए विभिन्न पुस्तकालयों का उपयोग करने के उदाहरणों के साथ एक परीक्षण परियोजना: hibernate-scanners-test

संबंधित मुद्दे