Hibernate的4注解配置(Hibernate 4 Annotation Configurati

2019-07-30 21:51发布

我试图使用Hibernate 4只注释,且hibernate.cfg.xml文件。 我做了我自己的批注和我使用反射来将其添加到配置。 我能够以这种方式细使用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(); )。

即使休眠4文档显示构建以这种方式配置。

如果我尝试使用新方法( buildSessionFactory(ServiceRegistry)我没有得到相同的结果,而且好像很多不必要的代码做什么过时的方法做无妨。不过,我不希望继续使用这种风格,因为我不喜欢反正使用过时的代码。

我的问题是:如何正确地从只是一个配置文件中上述方式配置Hibernate 4? 我似乎只是导致错误和面对不必要的困难。

Answer 1:

修改后的代码看起来象下面这样: -

  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-6183和HHH-2578 。



文章来源: Hibernate 4 Annotation Configuration