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