HIbernate 多对多 报“无标识符” java.sql.SQLException: ORA-00904: "SDSYSOPERA0_"."NUM": 标识符无效Oracle数据库中没有创建外键。。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 描述信息太少了,Hibernate多对多是通过中间表对应的,没有创建外键,把你的SQL或HQL语句贴出来 明天贴。谢谢楼上配置文件我检查很多遍了。。不知道是不是因为关联键“Num”的缘故 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> 采用映射文件的方式基本没用过,我使用的是注解。你的映射文件有问题,改成下面的试一下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="OperateNum"/></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="MenuNum"/></set> 那两个字段是用来定义映射关系表里的字段,如果你没有在hibernate.cfg.xml中打开根据hibernate字段创建表的配置的话需要手工创建表,不过建议你设置<property name="hibernate.hbm2ddl.auto">update</property>。我做了一个示例,你可以看看http://blog.csdn.net/cuihaiyang/archive/2011/04/12/6317900.aspx win7 安装oracle11g 报错 移植存储过程有错 oracle查询问题! sql语句问题 要做数据统计方面的东西 oracle 10g 无法登录的问题,高手请进来看看啊!! Orcale安装不上去,老提示找不到组件? .exp 文件如何导入的数据库 oracle如何调用操作系统应用程序啊!! 当前日期的格式问题! ORACLE中将一个表字段赋值到另一个表中 PLSQL Developer中文全是问号
不知道是不是因为关联键“Num”的缘故
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>
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="OperateNum"/>
</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="MenuNum"/>
</set>
我做了一个示例,你可以看看http://blog.csdn.net/cuihaiyang/archive/2011/04/12/6317900.aspx