2016-02-06 13 views
7

Hazırda bir SessionFactory@Entity den açıklamalı fasulye oluşturmak için otomatik paketleri tarama yapılandırabilir miyim? Şu anda ben eşleştirmeleri yapılandırmak için hibernate.cfg.xml kullanmak istemiyoruzSessionFactory otomatik olarak oluşturmak için tarama paketlerini hazırda bekletebilir mi?

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

kullanıyorum

.

herhangi bahar ya da bu tür çerçeveler kullanmadan bir düz Java projesinde bunu başarmak istiyorum lütfen unutmayın.

Benzer soru önce Bahar kullanarak cevap ama bahar ya da diğer çerçeveler kullanmadan bunu başarmak istiyoruz edilmiştir. Bunu yapan bazı basit kütüphanelere açığım.

cevap

5

Hayır Hazırda bile son hazırda 5 sürümü ile kalıcı sınıflar için paketler taramak için söyleyemeyiz. Configuration, addPackage() yöntemine sahiptir, ancak "paket düzeyinde meta veriler" (.package-info - dosyalar) değerini okumak içindir.

Sen bahar kullanmak istemiyorsanız, bu yüzden ne yapabilirim:

kullanma

Sen diğer kavanoz olması gerekmez (fluent-hibernate kütüphanesinden kullanabilirsiniz akıcı-hazırda bekleme dışında kütüphane)

hazırda 4 için ve Derin Uyku 5:

Yeni hazırda 5 önyükleme API kullanarak

:

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(); 

diğer kütüphaneleri

Zaten bir örnek Reflections için tarama için kullanılabilecek bir kütüphane, kullanırsanız kullanarak, orada varlık taraması için çeşitli kütüphaneler kullanma örnekleri ile bir test projesi: hibernate-scanners-test.

İlgili konular