大家好,我刚刚接触hibernate,在我的工程中应用得还算顺利,就是在映射继承关系的时候,总是出问题.

  在我的mysql数据库中有一个article表,其中有以下字段:
article_id   article_title   article_content   article_author    article_type
其中article_type用来区分不同类型的文章

   我采用的映射方式是: 继承关系的根类对应一个表

  父类Article有一个子类SchoolAarticle,属性字段如下:
article_id   article_title   article_content   article_author


  父类的映射文件如下(概要)
    <class name="Article" table="article" catalog="new" >
    
        <id name="article_id" type="int">
            <generator class="native"></generator>
        </id>
        
        <discriminator column="article_type" type="string"/>
          
        <property name="article_author" type="string"/>
        
        <property name="article_title" type="string"/>
        
        <property name="article_content" type="text"/>

       <subclass name="SchoolArticle" discriminator-value="school"></subclass>

    </class>


   hibernate.cfg.xml文件配置如下(概要):
  tables是我的包名:

  <session-factory>
        <mapping resource="tables/Article.hbm.xml"/>
  </session-factory>


    pojo类都已经写好,其他的也没什么问题,由于子类没有单独的映射文件,
因此按照书上说的,在初始化hibernate时,需要向Configuration对象中加入Article类,以下是测试程序的main()方法(概要):

//数据我已经在数据库中添加
public static void main(String ss[]) throws UnsupportedEncodingException
{
   Session session = null;  

      Configuration config = new Configuration();    
                
      config =  config.configure();
                
      config.addClass(Article.class);
                
      SessionFactory factory = config.buildSessionFactory();

      session = factory.openSession();

      Object o = null; 
                
      String hql = "from ClassArticle as t where t.id=?";
                  
   Query q = session.createQuery(hql);
                
      q.setInteger(0,1);
                
      List l = q.list();
                
      Iterator iter = l.iterator();
                
     SchoolArticle ca = (SchoolArticle)iter.next();

     System.out.println(ca.getArticle_id()+"  "+new String     (ca.getArticle_author().getBytes("ISO-8859-1"),"gb2312"));
}

运行后总是出现如下异常:

Exception in thread "main" org.hibernate.MappingException: Could not read mappings from resource: tables/Article.hbm.xml

Caused by: org.hibernate.DuplicateMappingException: Duplicate class/entity mapping tables.SchoolArticle

已经都好几天了,请大家帮帮我, 非常感谢!!