现在在做权限关系,有五张表Role角色表,user用户表,role_user角色用户表,menu菜单表, role_menu角色菜单表
我用了双向多对多
role.hbm.xml
<hibernate-mapping>
<class name="com.gohigh.hrms.model.Tbl_role" table="TBL_ROLE"
schema="HRMS">
<id name="id" type="java.lang.String">
<column name="ID" length="60" />
<generator class="uuid.hex" />
</id>
<property name="name" type="java.lang.String">
<column name="NAME" length="30" not-null="true" />
</property>
<property name="re" type="java.lang.String">
<column name="REMARK" length="200" />
</property>
<property name="createtime" type="java.lang.String">
<column name="CREATETIME" length="19" />
</property>
<!-- 角色用户的关联关系 -->
<bag name="user" table="TBL_ROLE_USER" lazy="false">
<key column="ROLEID"></key>
<many-to-many class="com.gohigh.hrms.model.Tbl_user"
column="USERID" />
</bag>
<!-- 角色菜单的关联关系 -->
<bag name="menu" table="TBL_ROLE_MENU" inverse="false" cascade="save-update"
lazy="false">
<key column="ROLEID"></key>
<many-to-many class="com.gohigh.hrms.model.Tbl_menu"
column="MENUID" />
</bag>
</class>menu.hbm.xml
<hibernate-mapping>
    <class name="com.gohigh.hrms.model.Tbl_menu" table="TBL_MENU" schema="HRMS">
        <id name="id" type="java.lang.String">
            <column name="ID" length="60" />
            <generator class="uuid.hex" />
        </id>
        <property name="name" type="java.lang.String">
            <column name="NAME" length="30" not-null="true" />
        </property>
        <property name="path" type="java.lang.String">
            <column name="PATH" length="200" />
        </property>
        <property name="re" type="java.lang.String">
            <column name="REMARK" length="200" />
        </property>
        <property name="isleaf" type="java.lang.String">
            <column name="ISLEAF" length="1" not-null="true" />
        </property>
        <property name="sortnum" type="java.lang.String">
            <column name="SORTNUM" length="20" />
        </property>
        <property name="createtime" type="java.lang.String">
            <column name="CREATETIME" length="19" />
        </property>
         <many-to-one name="parent" 
         column="PARENTID"
         class="com.gohigh.hrms.model.Tbl_menu"
         lazy="false">
        </many-to-one>
        <set name="childs"
          cascade="all"
          lazy="false"
          inverse="true">
          <key column="PARENTID"></key>
        <one-to-many class="com.gohigh.hrms.model.Tbl_menu"/>
        </set>
        <!-- 菜单角色的关联关系 -->
<bag name="role" table="TBL_ROLE_MENU" 
lazy="false">
<key column="menuID"></key>
<many-to-many class="com.gohigh.hrms.model.Tbl_role"
column="roleID" />
</bag>
    </class>
</hibernate-mapping>user.hbm.xml
<hibernate-mapping>
<class name="com.gohigh.hrms.model.Tbl_role" table="TBL_ROLE"
schema="HRMS">
<id name="id" type="java.lang.String">
<column name="ID" length="60" />
<generator class="uuid.hex" />
</id>
<property name="name" type="java.lang.String">
<column name="NAME" length="30" not-null="true" />
</property>
<property name="re" type="java.lang.String">
<column name="REMARK" length="200" />
</property>
<property name="createtime" type="java.lang.String">
<column name="CREATETIME" length="19" />
</property>
<!-- 角色用户的关联关系 -->
<bag name="user" table="TBL_ROLE_USER" lazy="false">
<key column="ROLEID"></key>
<many-to-many class="com.gohigh.hrms.model.Tbl_user"
column="USERID" />
</bag>
<!-- 角色菜单的关联关系 -->
<bag name="menu" table="TBL_ROLE_MENU" inverse="false" cascade="save-update"
lazy="false">
<key column="ROLEID"></key>
<many-to-many class="com.gohigh.hrms.model.Tbl_menu"
column="MENUID" />
</bag>
</class>
</hibernate-mapping>Tbl_UserManager tbl_userManager = (Tbl_UserManagerImpl) factory
.getBean("tbl_userManager");
Tbl_RoleManager tbl_roleManager = (Tbl_RoleManagerImpl) factory
.getBean("tbl_roleManager");
List<Tbl_role> list = tbl_userManager.getTblUser4TblRole("200908201120040000000"); 。//通过id找到对应用户的权限。
for(Tbl_role role:list)
{
System.out.println(role.getName());
}
Tbl_user user = new Tbl_user();
user = tbl_userManager.getTblUser("8ad8011c27fb5aa10127fb699b900004");//通过用户id找到用户的对象
user.setRole(list);
tbl_userManager.modifyTblUser(user);主要想提问的是:两张关系表在设计的时候,都有一个标示id 也就是每关系表有3个字段。
现在我想修改用户的权限,用junit测试的时候也没有报错。就是没有在role_user关系表中添加对应的字段。我感觉是因为现在没有关系表的映射,好像也不需要关系表的映射。而网上出现的都是关系表没有对应的id,请问这个id如何让hibernate进行自动添加。我感觉是关系表的id我没有控制它自动添加导致role_user关系表中没有对应用户的权限字段。请告诉帮忙看看谢谢!