Exception in thread "main" org.hibernate.MappingException: Foreign key (FKEBABC40ED0AC0EEB:resource [resourceID])) must have same number of columns as the referenced primary key (role [roleID,elt])

解决方案 »

  1.   

    Hibernate 映射文件出了问题。相关联的表的外键项定义错误。
    比如在论坛中,一个主题subject对应很多话题topic,在subject.hbm.xml中有      
                               <set
             name="topics"
             cascade="delete"
             inverse="true">
             <key column="subjectid"/>            <!-- 对应topic表的subjectid字段 -->
             <one-to-many class="Topic"/>    <!-- topic表对应的类 -->        
             </set>
    在topic.hbm.xml中有
                               <many-to-one
             name="subject"
             column="subjectid"<!-- 对应topic表的subjectid字段 -->
             class="Subject"<!-- subject表对应的类 -->        
             not-null="true"/>
    另外在相应的持久化类中必须定义name项中包含的属性!希望能对楼主有所帮助!
      

  2.   

    我改好了
    是这样的
    /**
     * @hibernate.set table="roleresource"
     * @hibernate.key column="resourceID"
     * @hibernate.many-to-many class="com.sgms.model.Role" column="roleID"
     */
    Set role;