2012-07-11 13 views
8

Ben hibernate 4.0 interceptors bazı kodu deneyin: AncakHazırda 4.0.0Final (keseni önleme)

Session session = sf.openSession(new AuditInterceptor()); 

, ben hibernate- hem kontrol çekirdek 4.0 kaynak kodu ve onley hibernate 4.0 java-doc, sınıf SessionFactory yöntemi openSession(Interceptor interceptor) yöntemine sahip değildir, ancak hibernate 3.6 java-doc bu yönteme sahiptir.

Yöntem, yöntemin nereye taşındığını bilen var mı? Eğer kullanımdan kaldırılırsa, neden belge hala eğitim belgesinde kalıyor? ve 4.0 seviyesinde oturum seviyesi önleyiciyi nasıl kullanmalıyım?

cevap

22

Şimdi Oluşturucu desen kullanılarak uygulanır oluyor:

Session session = sf.withOptions() 
        .interceptor(new AuditInterceptor()) 
        .openSession(); 
+5

wtf. Neden bu belge belgesi yok? Bu adamı nereden buldunuz? – pinkdawn

+1

@pinkdawn belgeselisiniz: Hibernate 4.x ciddi dokümantasyona sahip değil. [Hazırda 4.0 El Kitabı] (http://docs.jboss.org/hibernate/core/4.0/manual/en-US/html/index.html), Hibernate 3.x döneminden kalan bir şeydir. değişiklikler. Bu, henüz tamamlanmayan yepyeni bir [Hazırda Bekletme Geliştirici Kılavuzu] (http://docs.jboss.org/hibernate/core/4.0/devguide/en-US/html/) ile değiştirilmelidir. Cevabı bulmak için sadece Javadoc sayfasını gözden geçirdim ve bir yapımcı püf noktası fark ettim. – axtavt

+1

Belgelerin idealden daha az olduğunu kabul etmediğime göre, el kitapları genellikle "bundan böyle kullandınız, ama şimdi yapıyorsunuz" diye söz etmeyiniz. Değişim günlükleri ve geçiş kılavuzları işi. Değişiklik günlükleri, (1) serbest bırakma indirme paketlerine yerleştirilir ve (2) yayınlama duyurularında referans alınır ve (3) Hazırda Bekleme Jirası aracılığıyla kalıcı olarak kullanılabilir. Göç kılavuzları https://community.jboss.org/wiki/Hibernate3MigrationGuides adresinde listelenmiştir; örneğin https://community.jboss.org/wiki/HibernateCoreMigrationGuide40 –