private static void init() {

    String hibernateConfigLocation;
    try {
      hibernateConfigLocation =
          MetaConfiguration.getConfiguration().getString(HIBERNATE_CONFIGURATION_PROPERTY);
    } catch (Exception e) {
      hibernateConfigLocation = null;
    }

    try {
      Configuration configuration = new Configuration();

      if (hibernateConfigLocation == null) {
        configuration.configure();
      } else {
        configuration.configure(new File(hibernateConfigLocation));
      }

      //
      // Add server connection details
      //
      DatabaseServer databaseServer =
          ServerConfigurationService.Factory.getInstance().getOrdsDatabaseServer();
      configuration.setProperty("hibernate.connection.url", databaseServer.getUrl());
      configuration.setProperty("hibernate.connection.username", databaseServer.getUsername());
      configuration.setProperty("hibernate.connection.password", databaseServer.getPassword());

      addMappings(configuration);

      serviceRegistry =
          new ServiceRegistryBuilder()
              .applySettings(configuration.getProperties())
              .buildServiceRegistry();

      sessionFactory = configuration.buildSessionFactory(serviceRegistry);
    } catch (Exception he) {
      System.err.println("Error creating Session: " + he);
      throw new ExceptionInInitializerError(he);
    }
  }