开发者社区> 问答> 正文

org.hibernate.MappingException: Unknown ?400报错

org.hibernate.MappingException: Unknown entity: hibernate.Employee2? 400 报错

用eclipse 从数据库逆向生成Hibernate实体类。。出错

Exception in thread "main" org.hibernate.MappingException: Unknown entity: hibernate.Employee2
	at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:580)
	at org.hibernate.impl.SessionImpl.getEntityPersister(SessionImpl.java:1365)
	at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:121)
	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)
	at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56)
	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)
	at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50)
	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
	at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:562)
	at org.hibernate.impl.SessionImpl.save(SessionImpl.java:550)
	at org.hibernate.impl.SessionImpl.save(SessionImpl.java:546)
	at test.Test.main(Test.java:20)


Employee2.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2012-8-12 19:37:51 by Hibernate Tools 4.0.0 -->
<hibernate-mapping>
    <class name="hibernate.Employee2" table="EMPLOYEE2" schema="SCOTT"><!--是这里错了吗? -->
        <id name="id" type="long">
            <column name="ID" precision="10" scale="0" />
            <generator class="assigned" />
        </id>
        <property name="name" type="string">
            <column name="NAME" length="5" />
        </property>
        <property name="email" type="string">
            <column name="EMAIL" length="15" />
        </property>
        <property name="hiredate" type="date">
            <column name="HIREDATE" length="7" />
        </property>
    </class>
</hibernate-mapping>

package test;


import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

import hibernate.Employee2;
public class Test {
	public static void main(String[] args) {
		Configuration cf=new Configuration().configure();
		SessionFactory sf=cf.buildSessionFactory();
		Session s=sf.openSession();
		Employee2 employee2=new Employee2(123,"123","123@456.com",new java.util.Date());
		Transaction tx= s.beginTransaction();
		//s.save(employee2);
		s.persist(employee2);
		tx.commit();
		}
	}

hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
		"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
		"http://hibernate.sourceforge.net/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">418gyz</property>
        <property name="hibernate.connection.url">jdbc:oracle:thin:@0.0.0.0:1522:orcl2</property>
        <property name="hibernate.connection.username">scott</property>
        <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
    </session-factory>
</hibernate-configuration>

Employee2.java

package hibernate;

// Generated 2012-8-12 19:37:50 by Hibernate Tools 4.0.0

import java.util.Date;

/**
 * Employee2 generated by hbm2java
 */
public class Employee2 implements java.io.Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private long id;
	private String name;
	private String email;
	private Date hiredate;

	public Employee2() {
	}

	public Employee2(long id) {
		this.id = id;
	}

	public Employee2(long id, String name, String email, Date hiredate) {
		this.id = id;
		this.name = name;
		this.email = email;
		this.hiredate = hiredate;
	}

	public long getId() {
		return this.id;
	}

	public void setId(long id) {
		this.id = id;
	}

	public String getName() {
		return this.name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getEmail() {
		return this.email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public Date getHiredate() {
		return this.hiredate;
	}

	public void setHiredate(Date hiredate) {
		this.hiredate = hiredate;
	}

}

展开
收起
爱吃鱼的程序员 2020-05-30 21:44:46 489 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    在你的hibernate.cfg.xml里面没有引入  Employee2.hbm.xml

     

    需要在hibernate.cfg.xml中加入

     

    <mapping resource="com/Employee2.hbm.xml " />

     

    具体路径,自己写。

    ######

    hibernate配置文件添加了映射文件吗

     

    2020-05-30 21:44:47
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载