未知实体:java.lang.Class和Hibernate 5.3

未知实体:java.lang.Class和Hibernate 5.3,java,spring,oracle,hibernate,hibernate-mapping,Java,Spring,Oracle,Hibernate,Hibernate Mapping,我对hibernate不熟悉,我已经看到了许多为hibernate创建util的方法。我想这就是我的错误所在,但我不确定。(使用Oracle 12c和Hibernate 5.3)。我的目标是尝试测试hibernate将表存储到数据库(oracle)中的能力。我关心的是hibernateUtil,以及映射是否正确/hibernate.cfg.xml是否正确/web应用程序servlet的文件夹结构是否正确/以及我的需求Bean注释是否正确。我看过其他帖子,但它们都指向我修复的实体导入问题。谢谢你的

我对hibernate不熟悉,我已经看到了许多为hibernate创建util的方法。我想这就是我的错误所在,但我不确定。(使用Oracle 12c和Hibernate 5.3)。我的目标是尝试测试hibernate将表存储到数据库(oracle)中的能力。我关心的是hibernateUtil,以及映射是否正确/hibernate.cfg.xml是否正确/web应用程序servlet的文件夹结构是否正确/以及我的需求Bean注释是否正确。我看过其他帖子,但它们都指向我修复的实体导入问题。谢谢你的帮助

org.hibernate.MappingException: Unknown entity: java.lang.Class
at org.hibernate.metamodel.internal.MetamodelImpl.entityPersister(MetamodelImpl.java:670)
at org.hibernate.internal.SessionImpl.getEntityPersister(SessionImpl.java:1721)
at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:118)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:192)
at org.hibernate.event.internal.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:38)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:177)
at org.hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:32)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:73)
at org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:713)
at org.hibernate.internal.SessionImpl.save(SessionImpl.java:705)
at org.hibernate.internal.SessionImpl.save(SessionImpl.java:700)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at org.hibernate.context.internal.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:350)
at com.sun.proxy.$Proxy40.save(Unknown Source)
at com.hibernate.DAO.Requirement.addRequirement(Requirement.java:27)
at com.hibernate.DAO.Requirement.main(Requirement.java:40)
hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory>
    <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
    <property name="hibernate.connection.password">*******</property>
    <property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:TCS</property>
    <property name="hibernate.connection.username">TCS</property>
    <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
    <property name="hibernate.connection.pool_size">10</property>
    <property name="hibernate.show_sql">true</property>
    <property name="hbm2ddl">create</property>
    <property name="hibernate.current_session_context_class">thread</property>
    <property name="hibernate.jdbc.batch_size">10</property>
    <mapping class="com.hibernate.beans.Requirements"/>
  </session-factory>
</hibernate-configuration>
Requirement.Java

package com.hibernate.DAO;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import com.hibernate.beans.Name;
import com.hibernate.beans.Requirements;
import com.hibernate.util.HibernateUtil;

public class Requirement {

    private static void addRequirement() {
     Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        try {
            session.beginTransaction();
            Requirements re = new Requirements();
            re.setName(new Name("Bob", "Steven"));
            re.setAccount("Verizon");
            re.setPendingRequirement(2);
            re.setStatus("Pending");
            re.setSkillsNeeded("C++");
            session.save(Requirements.class);
            session.getTransaction().commit();
        } catch (Exception e) {
            e.printStackTrace();
            session.getTransaction().rollback();
        } finally {
            session.close();
        }
    }

    public static void main(String[] args) {
        SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
        Requirement re = new Requirement(sessionFactory);
        addRequirement();
    }
 }
文件夹结构


更新了Requirement.java,只调用它并获取当前会话,但仍然得到相同的错误事实上,我想我忘了添加实际的对象woops。让我试试看。我要买这个。Hibernate:从dual Hibernate中选择REQ_ID_Sequence.nextval:插入TCS。需求(REQ_ID)值(?)2019年9月21日9:30:58 PM org.Hibernate.engine.jdbc.batch.internal.AbstractBatchImpl发布信息:HHH000010:在发布批次时,它仍然包含jdbc语句(9月21日),2019年9:30:58 PM org.hibernate.engine.jdbc.batch.internal.BatchingBatch性能执行错误:HH000315:异常执行批处理[java.sql.BatchUpdateException:ORA-00942:表或视图未执行exist@whatsoracle中表的名称
package com.hibernate.DAO;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import com.hibernate.beans.Name;
import com.hibernate.beans.Requirements;
import com.hibernate.util.HibernateUtil;

public class Requirement {

    private static void addRequirement() {
     Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        try {
            session.beginTransaction();
            Requirements re = new Requirements();
            re.setName(new Name("Bob", "Steven"));
            re.setAccount("Verizon");
            re.setPendingRequirement(2);
            re.setStatus("Pending");
            re.setSkillsNeeded("C++");
            session.save(Requirements.class);
            session.getTransaction().commit();
        } catch (Exception e) {
            e.printStackTrace();
            session.getTransaction().rollback();
        } finally {
            session.close();
        }
    }

    public static void main(String[] args) {
        SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
        Requirement re = new Requirement(sessionFactory);
        addRequirement();
    }
 }