java - Hibernate 中的未知实体

标签 java xml hibernate jpa

我的应用程序在通过 JPA 查找实体时遇到问题。 我遇到了异常(exception):

Exception in thread "main" java.lang.IllegalArgumentException: Unknown entity: org.hibernate.jpa.internal.EntityManagerImpl
    at org.hibernate.jpa.spi.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:1184)
    at test.Test.main(Test.java:50)

我的 persistence.xml 文件:

<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="JPAService" transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
        <properties>
            <property name="hibernate.connection.driver_class" value="oracle.jdbc.driver.OracleDriver" ></property>
            <property name="hibernate.connection.url" value="***"></property>
            <property name="hibernate.connection.username" value="***" />
            <property name="hibernate.connection.password" value="***" />
            <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect" />
            <property name="hibernate.show_sql" value="true" />            
            <property name="hibernate.archive.autodetection" value="class"/>
        </properties>
  </persistence-unit>
</persistence>

执行文件:

package test;

import java.util.Date;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import testo.entities.SiecSprzedazyForm;

public class Test {
    public static void main(String[] args) {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("JPAService");
        EntityManager em = emf.createEntityManager(); 

        SiecSprzedazyForm siecSprzedazyFormularz = new SiecSprzedazyForm();
        siecSprzedazyFormularz.setAdresIpOsobWysyl("192.168.0.30");
        siecSprzedazyFormularz.setDataWyslania(new Date());
        siecSprzedazyFormularz.setEmail("ada@gmail.com");
        siecSprzedazyFormularz.setImieNazwisko("ada byk");
        siecSprzedazyFormularz.setMiejscowosc("Kraków");
        siecSprzedazyFormularz.setPowiat("Kraków");
        siecSprzedazyFormularz.setTelefon("123123123");

        em.getTransaction().begin();
        em.persist(em);
        em.getTransaction().commit();

        em.close();
        emf.close();
    }
}

有人有解决方案来解决我的 persistence.xml 问题吗?

最佳答案

看起来您正在尝试保留您的实体管理器:

em.persist(em);

当你应该尝试持久化你的实体时:

em.persist(siecSprzedazyFormularz);

错误的原因是 EntityManager 对象不是托管实体,因此它不知道如何将其保存到数据库。

关于java - Hibernate 中的未知实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31183592/

相关文章:

java - Android Graphview - 附加数据

c# - XmlDocument.SelectSingleNode 使用哪个版本的 XPath?

java - 使用hibernate将ArrayList设置为java.sql.Blob以保存在DB中很困难

hibernate - 多个命名实体图可以在一个 JPQL 查询中传递吗?

java - Java 的崩溃报告

java - 保存随机数组以在整个应用程序中使用

java - Java 1.4 上的 ActiveMQ 客户端

html - 抓取时如何避免加入来自节点的所有文本

c# - C# 中的 XMLSerializer 不包括类的所有属性

java - Dropwizard hibernate 1.0.0