anchor.diff:  ----
   SessionFactory sessionFactory = new SessionFactory(configuration, "first.package.domain", "second.package.domain",...);
   ----
  -
  -NOTE: The `SessionFactory` is an expensive object to create because it scans all the requested packages to build up metadata.
  - It should typically be set up once during life of your application.
  
positive.code: This also sets up the object-graph mapping metadata when constructed, which is then used across all `Session` objects that it creates.
  The packages to scan for domain object metadata should be provided to the `SessionFactory` constructor.
  
  As seen in the configuration section, this is done by providing the `SessionFactory` a configuration object:
  [source, java]
  ----
  SessionFactory sessionFactory = new SessionFactory(configuration, "com.mycompany.app.domainclasses");
  ----
  
  Or directly a Neo4j Java driver instance:
  
  This can be done by providing to the `SessionFactory` a driver instance:
  [source, java]
  
negative.code: SessionFactory sessionFactory = new SessionFactory(driver, "com.mycompany.app.domainclasses");
  ----
  
  ==== Embedded driver instance
  
  If a pre-configured embedded database is needed, it can be passed into the embedded driver.
  It is possible to either use a configuration file
  [source, java]
  ----
  GraphDatabaseService db = new GraphDatabaseFactory()
              .newEmbeddedDatabaseBuilder(new File(storeDir))
              .loadPropertiesFromFile(pathToConfigFile)
              .newDatabase();
  ----
  
  or set the setting parameters programmatically.
  
  [source, java]
  ----
  GraphDatabaseService db = new GraphDatabaseFactory()
              .newEmbeddedDatabaseBuilder(new File(storeDir))
              .setConfig( GraphDatabaseSettings.pagecache_memory, "512M" )
              .newDatabase();
  ----
  
  and pass them into the `EmbeddedDriver`.
  
  [source, java]
  ----
  EmbeddedDriver driver = new EmbeddedDriver(db)
  
  SessionFactory sessionFactory = new SessionFactory(driver, "com.mycompany.app.domainclasses");
  ----
  
  === Multiple entity packages
  Multiple packages may be provided as well.
  If you would rather just pass in specific classes you can also do that via an overloaded constructor.
  
  