我的course.hbm.xml如下
<hibernate-mapping>
    <class name="com.ORM.Course" table="course" catalog="webexam">
        <id name="id" type="java.lang.Integer">
            <column name="ID" />
            <generator class="identity" />
        </id>
        <property name="courseName" type="java.lang.String">
            <column name="CourseName" length="12" />
        </property>
        
        <!--映射Course到Knowledgepoint的一对多关联--> 
<set name="knowledgepoint"
 cascade="all"
 inverse="true"
 lazy="true">
<key column="Course" />
<one-to-many class="com.ORM.Knowledgepoint" />
</set>  
        
        <!--映射Course到Teache的一对多关联--> 
<set name="teacher"
 cascade="all"
 inverse="true"
 lazy="true">
<key column="Course" />
<one-to-many class="com.ORM.Teacher" />
</set>      

<!--映射Student到Course的多对多双向关联-->
<set name="student"
 table="stuselectcourse"
 lazy="true"
 cascade="save-update">
 <key column="Course"/>
 <many-to-many class="com.ORM.Student" column="Student"/>
</set>              
    </class>
</hibernate-mapping>

解决方案 »

  1.   

    <key column="外键"/>
    也就是course表里面的字段
    <many-to-many class="..." column="主键"/>
      

  2.   

    它好像是说course重复映射了
    多对多不是要另外加一张连接表的吗?
    <key column=""/> 
    <many-to-many class="..." column=""/>
    都是连接表里的键,都是外键吧?
    我也糊涂了
      

  3.   

    显然是course重复映射了,先把hibernate关系映射的基础知识学好,再去解决这个问题就很简单了,或都应用hibernate反转工具自动生成,也可以用完全面向对象的方向自动生成数据库表,这样就不用烦会出现这些问题了.
      

  4.   

    course重复映射了,但我看了映射文件,似乎没有哪边重复了
      

  5.   

    <key column="是表course的字段"/>
      

  6.   

    hibernate对象间的映射实际上是相应字段的映射,而且楼主不知道column是字段的意思吗?你把column值都设置成表名当然有问题了
      

  7.   

    <hibernate-mapping> 
            
            <!--映射Course到Knowledgepoint的一对多关联--> 
    <set name="knowledgepoint" 
    cascade="all" 
    inverse="true" 
    lazy="true"> 
    <key column="Course" /> 
    <one-to-many class="com.ORM.Knowledgepoint" /> 
    </set>  
            
            <!--映射Course到Teache的一对多关联--> 
    <set name="teacher" 
    cascade="all" 
    inverse="true" 
    lazy="true"> 
    <key column="Course" /> 
    <one-to-many class="com.ORM.Teacher" /> 
    </set>      <!--映射Student到Course的多对多双向关联--> 
    <set name="student" 
    table="stuselectcourse" 
    lazy="true" 
    cascade="save-update"> 
    <key column="Course"/
    <many-to-many class="com.ORM.Student" column="Student"/
    </set>            
        </class> 
    </hibernate-mapping> 都有问题
      

  8.   

    这个我知道,但我数据库的字段名也是Course,不知道这和属性名有没有冲突
      

  9.   

    我刚才也是这个错误,你仔细检查下是不是有重复的property,就好了