【问题标题】:Hibernate 4 Annotation ConfigurationHibernate 4 注释配置
【发布时间】:2012-08-07 08:59:13
【问题描述】:

我正在尝试仅使用带有注释的 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();)。

即使是 hibernate 4 文档也显示了以这种方式构建配置。

如果我尝试使用新方法 (buildSessionFactory(ServiceRegistry),我不会得到相同的结果,而且似乎有很多不必要的代码来完全按照已弃用的方法执行。但是,我没有想继续使用这种风格,因为无论如何我都不喜欢使用已弃用的代码。

我的问题是: 如何以上述方式仅从配置文件正确配置 Hibernate 4?我似乎只会犯错误并面临不必要的困难。

【问题讨论】:

标签: java hibernate hibernate-annotations hibernate-4.x hibernate.cfg.xml


【解决方案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-6183HHH-2578

【讨论】:

    猜你喜欢
    • 2011-11-01
    • 2013-10-02
    • 2010-09-20
    • 1970-01-01
    • 1970-01-01
    • 2018-10-25
    • 2017-03-25
    • 1970-01-01
    • 2010-09-23
    相关资源
    最近更新 更多