构建休眠会话工厂

building hibernate sessionFactory

当我使用旧的已弃用的休眠方法来构建会话工厂时,它工作正常:

SessionFactory sessionFactory = new Configuration()
      .configure().buildSessionFactory();

当我用新方法替换它时,它被编译但在运行时出现未知实体异常,似乎新方法没有获取映射资源="xyz.hbm.xml" 属性:

  Configuration configuration = new Configuration().configure();
      ServiceRegistry serviceRegistry
          = new StandardServiceRegistryBuilder()
              .applySettings(configuration.getProperties()).build();

      // builds a session factory from the service registry
      SessionFactory sessionFactory = `configuration.buildSessionFactory(serviceRegistry);`

我的问题是,我是否需要在配置中进行一些更改或在 hibernate.cfg.xml 文件中添加一些 属性 以便读取 属性 并在使用构建会话工厂的新方法时加载?

我也试过以下:

Configuration configuration = new Configuration(); configuration.configure("hibernate.cfg.xml"); ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder() .applySettings(configuration.getProperties()).build(); SessionFactory sessionFactory = configuration .buildSessionFactory(serviceRegistry); 

在新版本的 Hibernate 中,您不能将配置与新的 Configuration().configure()config.buildSessionFactory(registry) 混合使用。您应该使用 StandardServiceRegistryBuilder 进行所有配置。 有关详细信息,请参阅 and this