Hibernate 4注释配置

我正在尝试仅使用带有注释的Hibernate 4和一个hibernate.cfg.xml文件。 我已经制作了自己的注释,并使用reflection将其添加到配置中。 我能够以这种方式使用Hibernate 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? 我似乎只是造成错误并面临不必要的困难。

修改后的代码如下所示: –

  final Configuration configuration = new Configuration(); final Reflections reflections = new Reflections(Item.class.getPackage().getName()); final Set> 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-6183和HHH-2578 。