测了N种可能都没有解决,请求大家支援!~~~~先谢谢各位~~~
java.sql.SQLException: ORA-00904: "SDSYSOPERA0_"."NUM": 标识符无效Oracle数据库中没有创建外键。。public class SdSysMenu implements java.io.Serializable {// Fields
private static final long serialVersionUID = -1513391654427196155L;
private String num;
private Long id;
private String title;
private String root;
private String icon;
private String fatherid;
private String linkStr;
private Long orderNum;
private Long isFather;
private Long isSys;
private Long qybz;
private Set<SdSysOperate> sdSysOperate = new HashSet<SdSysOperate>();
  //……省略get、set方法
  }SdSysMenu映射文件部分
<set name="sdSysOperate" table="SD_SYS_FunctionOperate" inverse="true" cascade="save-update" lazy="false"> 
<key column="MenuNum"/>
<many-to-many class="com.ideamov.model.SdSysOperate" column="Num"/>
</set>
public class SdSysOperate implements java.io.Serializable {// Fields
private static final long serialVersionUID = 3418481003619613339L;
private String num;
private Long id;
private String title;
private String icon;
private String linkStr;
private Long orderNum;
private Long qybz;
private String sfxz;//是否选中
private Set<SdSysMenu> sdMenu = new HashSet<SdSysMenu>(); //……省略get、set
}SdSysOperate 映射文件(部分)
<set name="sdMenu" table="SD_SYS_FunctionOperate" inverse="true" cascade="save-update"> 
<key column="OperateNum"/>
<many-to-many class="com.ideamov.model.SdSysMenu" column="Num"/>
</set>

解决方案 »

  1.   

    <many-to-many class="com.ideamov.model.SdSysOperate" column="Num"/>
    这句不要column,把这个去掉试一下
      

  2.   

    上面那个把column="Num"去掉,在使用多对多的时候,如果没有指定中间表的话,就不要指定列名了!
      

  3.   

    注解的路过 表示:看配置的头疼(其实也不明白XML配置)
      

  4.   

    我知道错在哪了,你上面两个列名重名了,都为NumSdSysMenu映射文件部分
    <set name="sdSysOperate" table="SD_SYS_FunctionOperate" inverse="true" cascade="save-update" lazy="false">  
    <key column="MenuNum"/>
    <many-to-many class="com.ideamov.model.SdSysOperate" column="Num"/>
    </set>SdSysOperate 映射文件(部分)
    <set name="sdMenu" table="SD_SYS_FunctionOperate" inverse="true" cascade="save-update">  
    <key column="OperateNum"/>
    <many-to-many class="com.ideamov.model.SdSysMenu" column="Num"/>
    </set>把其中一个列名改一下,
      

  5.   

    这是我以前写的测试代码,给你参考一下Student类:
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
            "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
            "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping>
    <class name="com.tiantian.test.Student">
    <id name="id">
    <generator class="native"></generator>
    </id>

    <property name="name"></property>
    <set name="teachers" table="t_s">
    <key column="student_id"></key>
    <many-to-many class="com.tiantian.test.Teacher" column="teacher_id"/>
    </set>
        </class>

    </hibernate-mapping>
    Teacher类:
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
            "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
            "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping>
    <class name="com.tiantian.test.Teacher">
    <id name="id">
    <generator class="native"></generator>
    </id>

    <property name="name"></property>
    <set name="students" table="t_s">
    <key column="teacher_id"></key>
    <many-to-many class="com.tiantian.test.Student" column="student_id"/>
    </set>
        </class>

    </hibernate-mapping>
      

  6.   

    求解 同等问题。oracle 多对多 在hibernate 配置set与在mysql中的多对多难道有不同的地方?求!解~