org.hibernate.MappingException: Unknown entity:

org.hibernate.MappingException: Unknown entity: ******

当调试时出现这样错误可能有以下原因造成的:

 

1、检查你的映射文件的名字是否和你的pojo(*.java)的名字是否相同。

 

2、映射文件的名字是*.hbm.xml而不是*.xml

 

3、映射文件中的class属性是否全类型的类名(包含包名)

 

4、你是否加载了你的映射文件。

 

      加载的方法有两种

 

   (1)在你的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">

 

<!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration>

 

              …………

 

              …………

 

         <!-- 用于记载映射文件Student.hbm.xml-->
     <mapping resource="com/Students.hbm.xml"/>
     </session-factory>

 

</hibernate-configuration>

 

    (2)在你的测试代码的加载映射文件

 

           Configuration cfg = new Configuration();
           cfg.configure();
           cfg.addClass(*.class);    这里的*.class是你的映射文件的名字*.hbm.class中的*。。。

 

      但是你要注意,用第二种方法加载的时候,你的*.hbm.class文件必须位于classpath下面。

 

 

5、如果这种错误一般发生在findById()方法测试中因为里面的类要写全路径。 

解决:找到DAO类中的findById()方法,将此方法中Session的get方法第一个类参数的路径写全,即:

 

 

 

 

OperationDispute instance = (OperationDispute) getSession()
                    .get("model.OperationDispute", id);

 如以上代码,将get中的"OperationDispute"改为"model.OperationDispute"就可以啦!

 

 

 

 

 

 

你可能感兴趣的:(Hibernate)