当前位置: 首页 > 知识库问答 >
问题:

Hibernate-OGM[PersistenceUnit:person]无法构建Hibernate SessionFactory

翟嘉祥
2023-03-14

我得到以下错误

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();
    }
}
@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;
        }    
}
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();

    }

}

persistance.xml

<?xml version="1.0"?>
<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">

    <persistence-unit name="person" transaction-type="JTA">
        <provider>org.hibernate.ogm.jpa.HibernateOgmPersistence</provider>
       <class>com.ihappyk.model.Person</class>
        <properties>
            <property name="hibernate.ogm.datastore.provider" value="mongodb" />
            <property name="hibernate.ogm.datastore.database" value="hibernateOGM" />
            <property name="hibernate.ogm.datastore.host" value="127.0.0.1" />
            <property name="hibernate.ogm.datastore.port" value="27017" />
            <property name="hibernate.ogm.datastore.provider" value="org.hibernate.ogm.datastore.mongodb.impl.MongoDBDatastoreProvider"/>

            <property name="hibernate.transaction.jta.platform" value="org.hibernate.service.jta.platform.internal.JBossStandAloneJtaPlatform"/>
        </properties>
    </persistence-unit>
</persistence>

共有1个答案

唐修诚
2023-03-14

异常说明了一切:

Caused by: org.hibernate.HibernateException: Unanticipated return type [java.lang.Long] for UUID

您正在对它不支持的类型使用UUID id生成器。在本例中,应该使用string而不是long

 类似资料:
  • 问题内容: 我收到以下错误 Exception in thread “main” javax.persistence.PersistenceException: [PersistenceUnit: person] Unable to build Hibernate SessionFactory at org.hibernate.jpa.boot.internal.EntityManagerFact

  • Hibernate 团队对外宣布了一个新的家族成员,Hibernate OGM, OGM 是 Object Grid Mapping的缩写,它的目标是试图使用 JPA 来操作 NoSQL数据库。 示例代码: @PersistenceContext EntityManager em;// the transaction boundary is really here to express the f

  • 我正在使用Hibernate和spring boot。我注意到,如果我从包中包含注释和 并尝试运行spring启动应用程序。我的应用程序启动失败,出现以下错误。 当我删除这些注释并尝试运行应用程序时。应用程序启动良好。 审计实体。JAVA 波姆。xml 我将审计实体嵌入到userentity中。 下面是userEntity的代码。JAVA 我相信这是因为我引入了一些与hibernate相关的类,这

  • 是否可以使用Hibernate ORM和OGM创建单个应用程序?我创建了一个应用程序,我在一个应用程序中遇到了多个JPA的问题。我通过更改两个JPA的名称解决了这个问题,但两个JPA之间仍然存在冲突。以下是例外情况: 原因:org.springframework.beans.factory.无法将类型[org.hibernate.internal.SessionFactoryImpl]的参数值转换

  • 我正在使用Arquillian、JBoss、JPA/Hibernate、H2 DB和Maven运行测试。在我的测试persistence.xml文件中,我有: 目前,我有一个User类通过Hibernate注释映射到“users”表。 一切都快开始了。问题是Hibernate正在尝试执行: 但是模式“my_schema”不存在,所以它失败了(毕竟我是在运行内存中的数据库)。 我如何进入Hibern