假如我有表menu(menuId,menuName,location)和表role(roleId,roleName)和关系表role_menu(id,roleId,menuId)
表中数据
menu: role: role_menu:
menuId menuName location roleId roleName id roleId menuId
1 aa aa 1 aa 1 1 1
2 bb bb 2 bb 2 1 2
3 cc cc 3 cc 3 1 3
4 2 1
5 2 2
6 3 3
现在假如当我删除表menu中menuId为1的数据时,hibernate会自动帮我删除表role_menu中menuId为1的数据(1、4),表role中的数据不变。当我删除表role中roleId为1的数据时,hibernate会自动帮我删除表role_menu中roleId为1的数据(1、2、3),表role中的数据不变。修改表menu中的数据或者表role中的数据时,其他表中的数据不表,关系表中的数据也不删除。
menu.hbm.xml:
___________________________________________________________________________________
<set name="roles" table="role_menu" lazy="true" cascade="save-update">
<key column="menuId" />
<many-to-many class="com.yinbo.model.Role" column="roleId" outer-join="auto" />
</set>
____________________________________________________________________________________
role.hbm.xml:
<set name="menuItems" table="role_menu" lazy="true" cascade="save-update">
<key column="roleId" />
<many-to-many class="com.yinbo.model.MenuItem" column="menuId" outer-join="auto" />
</set>当我这样配置时,删除的话可以达到需求,但每次一修改menu中的记录,关系表中对应的记录就会被删除,修改role中的数据时,关系表中的记录不会被删除。
求教各位大侠我应该怎么配置关系才能完全达到需求。
表中数据
menu: role: role_menu:
menuId menuName location roleId roleName id roleId menuId
1 aa aa 1 aa 1 1 1
2 bb bb 2 bb 2 1 2
3 cc cc 3 cc 3 1 3
4 2 1
5 2 2
6 3 3
现在假如当我删除表menu中menuId为1的数据时,hibernate会自动帮我删除表role_menu中menuId为1的数据(1、4),表role中的数据不变。当我删除表role中roleId为1的数据时,hibernate会自动帮我删除表role_menu中roleId为1的数据(1、2、3),表role中的数据不变。修改表menu中的数据或者表role中的数据时,其他表中的数据不表,关系表中的数据也不删除。
menu.hbm.xml:
___________________________________________________________________________________
<set name="roles" table="role_menu" lazy="true" cascade="save-update">
<key column="menuId" />
<many-to-many class="com.yinbo.model.Role" column="roleId" outer-join="auto" />
</set>
____________________________________________________________________________________
role.hbm.xml:
<set name="menuItems" table="role_menu" lazy="true" cascade="save-update">
<key column="roleId" />
<many-to-many class="com.yinbo.model.MenuItem" column="menuId" outer-join="auto" />
</set>当我这样配置时,删除的话可以达到需求,但每次一修改menu中的记录,关系表中对应的记录就会被删除,修改role中的数据时,关系表中的记录不会被删除。
求教各位大侠我应该怎么配置关系才能完全达到需求。
解决方案 »
- 准备去深圳广州找软件开发的工作
- Mysql-struts-hibernate-myeclipse-tomcat发布的web应用出现问题
- 高分求助!请高人帮写一个程序
- 有必要报培训班吗
- 如果不考虑ejb,weblogic比tomcat好在哪里?
- tomcat和isa2004是否有冲突?
- J2EE到底是个什么东东?
- 怎样解决ORALCE中分页时,用count(*)来取得总记录数所耗时间过长得问题。
- Jbuilder8+Weblogic7.0的问题!高手请进!来者有分!在线等候!(Unable to start WebLogic Server!!WebLogic: license signature validat
- Hibernate 级联问题 注解实现@OneToMany
- SpringData事物源
- 求如何在action中获取spring配置文件中的数据库链接路径?
<hibernate-mapping>
<class table="t_userrole" name="com.zzq.model.UserRole">
<id name="id">
<generator class="native"/>
</id>
<many-to-one name="role"/>
<many-to-one name="user"/>
</class>
</hibernate-mapping><hibernate-mapping>
<class table="t_user" name="com.zzq.model.User">
<id name="id">
<generator class="native"/>
</id>
<property name="username" length="30" not-null="true" unique="true"/>
<property name="password" length="30" not-null="true"/>
</class>
</hibernate-mapping><hibernate-mapping>
<class table="t_role" name="com.zzq.model.Role">
<id name="id">
<generator class="native"/>
</id>
<property name="name" length="30" not-null="true" unique="true"/>
</class>
</hibernate-mapping>