7

我試圖使用休眠4僅註釋和hibernate.cfg.xml文件。我做了自己的註釋,並使用反射將其添加到配置中。我能夠以這種方式使用Hibernate 4,但我的配置是使用不推薦使用的方法構建的。休眠4註釋配置

final Configuration configuration = new Configuration(); 
final Reflections reflections = new Reflections(Item.class.getPackage().getName()); 
final Set<Class<?>> classes = reflections.getTypesAnnotatedWith(Entity.class); 
for (final Class<?> clazz : classes) { 
    configuration.addAnnotatedClass(clazz); 
} 
return configuration.configure().buildSessionFactory(); 

(棄用的代碼:buildSessionFactory();)。

即使是hibernate 4文檔顯示以這種方式構建配置。

如果我嘗試使用新方法(buildSessionFactory(ServiceRegistry),我沒有得到相同的結果,並且好像有很多不必要的代碼來完成棄用的方法,但是,我不想要繼續使用這種風格,因爲我不喜歡使用過時的代碼嗎

我的問題是:?如何正確配置Hibernate 4從上述方式只是一個配置文件,我似乎只是導致錯誤&臉不必要的困難

+1

你吃過看看這個線程: http://stackoverflow.com/questions/8621906/is-buildsessionfactory-deprecated-in-hibernate-4 有一個很好的答案投票那裏。 – 2012-08-21 13:20:52

回答

9

修改後的代碼如下所示: -

final Configuration configuration = new Configuration(); 
    final Reflections reflections = new Reflections(Item.class.getPackage().getName()); 
    final Set<Class<?>> classes = reflections.getTypesAnnotatedWith(Entity.class); 
    for (final Class<?> clazz : classes) { 
     configuration.addAnnotatedClass(clazz); 
    } 
      ServiceRegistry serviceRegistry=new ServiceRegistryBuilder().applySettings 
(configuration.getProperties()).buildServiceRegistry();   

    return configuration.buildSessionFactory(serviceRegistry); 

您可能會檢查以下鏈接的信息:HHH-6183HHH-2578