title: Hibernate - OGM [PersistenceUnit: person] Unable to build Hibernate SessionFactory
body: <p>i am getting an below error</p>
  
  <blockquote>
    <p>Exception in thread "main" javax.persistence.PersistenceException: [PersistenceUnit: person] Unable to build Hibernate SessionFactory
        at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:1249)
        at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.access$600(EntityManagerFactoryBuilderImpl.java:120)
        at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:860)
        at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850)
        at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:425)
        at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:849)
        at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:75)
        at org.hibernate.ogm.jpa.HibernateOgmPersistence.createEntityManagerFactory(HibernateOgmPersistence.java:63)
        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
        at com.ihappyk.utility.Utility.setUpEntityManagerFactory(Utility.java:11)
        at com.ihappyk.work.PersonWorker.main(PersonWorker.java:14)
    Caused by: org.hibernate.MappingException: Could not instantiate id generator [entity-name=com.ihappyk.model.Person]
        at org.hibernate.id.factory.internal.DefaultIdentifierGeneratorFactory.createIdentifierGenerator(DefaultIdentifierGeneratorFactory.java:123)
        at org.hibernate.mapping.SimpleValue.createIdentifierGenerator(SimpleValue.java:225)
        at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:323)
        at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1859)
        at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:857)
        ... 9 more
    Caused by: org.hibernate.HibernateException: Unanticipated return type [java.lang.Long] for UUID conversion
        at org.hibernate.id.UUIDGenerator.configure(UUIDGenerator.java:111)
        at org.hibernate.id.factory.internal.DefaultIdentifierGeneratorFactory.createIdentifierGenerator(DefaultIdentifierGeneratorFactory.java:117)
        ... 13 more</p>
  </blockquote>
  
  <p>Utilty.java</p>
  
  <pre><code>public class Utility {
      private static EntityManagerFactory entityManagerFactory;
  
      //@BeforeClass
      public static EntityManagerFactory setUpEntityManagerFactory() {
          entityManagerFactory = Persistence.createEntityManagerFactory( "person" );
          return entityManagerFactory;
      }
  
      //@AfterClass
      public static void closeEntityManagerFactory() {
          entityManagerFactory.close();
      }
  }
  </code></pre>
  
  <p>Persistant Class</p>
  
  <pre><code>@Entity
  public class Person {
  
          @Id
          @GeneratedValue(generator = "uuid")
          @GenericGenerator(name = "uuid", strategy = "uuid2")
          private long id;
  
          private String firstName;
          private String lastName;
  
          public long getId() {
              return id;
          }
          public void setId(long id) {
              this.id = id;
          }
          public String getFirstName() {
              return firstName;
          }
          public void setFirstName(String firstName) {
              this.firstName = firstName;
          }
          public String getLastName() {
              return lastName;
          }
          public void setLastName(String lastName) {
              this.lastName = lastName;
          }
  
          public Person(){
  
          }
  
          public Person(String firstName, String lastName) {
              this.firstName = firstName;
              this.lastName = lastName;
          }    
  }
  </code></pre>
  
  <p>main class</p>
  
  <pre><code>public class PersonWorker {
  
      public static void main(String[] args) {
          // TODO Auto-generated method stub
  
          EntityManagerFactory emf = Utility.setUpEntityManagerFactory();
  
          EntityManager em = emf.createEntityManager();
  
          em.getTransaction().begin();
  
              // create a Person
          Person bob = new Person( "Bob", "McRobb" );
  
          em.persist( bob );
          em.getTransaction().commit();
          em.close();
          emf.close();
  
      }
  
  }
  </code></pre>
  
  <p>persistance.xml</p>
  
  <pre><code>&lt;?xml version="1.0"?&gt;
  &lt;persistence xmlns="http://java.sun.com/xml/ns/persistence"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
               version="2.0"&gt;
  
      &lt;persistence-unit name="person" transaction-type="JTA"&gt;
          &lt;provider&gt;org.hibernate.ogm.jpa.HibernateOgmPersistence&lt;/provider&gt;
         &lt;class&gt;com.ihappyk.model.Person&lt;/class&gt;
          &lt;properties&gt;
              &lt;property name="hibernate.ogm.datastore.provider" value="mongodb" /&gt;
              &lt;property name="hibernate.ogm.datastore.database" value="hibernateOGM" /&gt;
              &lt;property name="hibernate.ogm.datastore.host" value="127.0.0.1" /&gt;
              &lt;property name="hibernate.ogm.datastore.port" value="27017" /&gt;
              &lt;property name="hibernate.ogm.datastore.provider" value="org.hibernate.ogm.datastore.mongodb.impl.MongoDBDatastoreProvider"/&gt;
  
              &lt;property name="hibernate.transaction.jta.platform" value="org.hibernate.service.jta.platform.internal.JBossStandAloneJtaPlatform"/&gt;
          &lt;/properties&gt;
      &lt;/persistence-unit&gt;
  &lt;/persistence&gt;
  </code></pre>