有三个个表ROLE,OPERATOR,OpeToRole<hibernate-mapping>
<class name="Operator" table="OPERATOR" lazy="false">
<meta attribute="class-description">
..................... 
<set name="ORM_Roles" table="OpeToRole" lazy="false" cascade="save-update"  inverse="false">
<key column="Opeid" not-null="true"/>
<many-to-many column="RoleName" class="Role">
</many-to-many>
</set>
</class>
</hibernate-mapping> <hibernate-mapping>
<class name="Role" table="ROLE" lazy="false">
<meta attribute="class-description">
...........................
<set name="ORM_Operators" table="OpeToRole" lazy="false" cascade="save-update" inverse="true">
<key column="RoleName" not-null="true"/>
<many-to-many column="Opeid" class="Operator">
</many-to-many>
</set>
</class>
</hibernate-mapping>程序
                      先对一个Operator的实例ope赋值,
                  ................
                    ope.setORM_Roles(roles);
然后调用接口OperatorDAO.update(ope);
                       接口OperatorDAO.update(ope)的实现是   entityManager.merge(operator)问题是,这样数据为什么不能插入关系表OpeToRole。急求

解决方案 »

  1.   

    看上去 是没什么错    你应该把你的数据库  贴出来!  不知道你是不是COLNUM弄错了 
      

  2.   

    对于双向多对多关联,必须同时建立一端到另一端的关联~~ope.setORM_Roles(roles);
    role.getOperators.add(ope);
      

  3.   

    http://topic.csdn.net/u/20090917/15/c3d5713c-0a6c-482f-8bf0-b8591756c406.html
      

  4.   

    最近刚学的hibernate,不简单,理解的东西!!!!
      

  5.   

    谢谢大家,
    ROLE,表RoleName字段,RoleName为主键
    OPERATOR,表OPEID....等等
    OpeToRole 为ROLEID,OPEID字段对象都是是持久化对象
      

  6.   

    错了
    OpeToRole 为RoleName,Opeid字段