hibernate更新集合时怎么做比较好?如:更新一个角色所拥有的菜单?通过前台的菜单配置,后台得到了某个角色的所有菜单id,然后准备更新Role里的menus集合。
于是产生了此问题。
/**
* @param roleId : 要配置菜单的角色ID
* @param menuIds :选择的菜单id List
*/
public void updateMenuConfig(int roleId, List menuIds) {
//..............
}
我目前是采用JDBC做的,先把该角色原来的菜单id全删除,再添加新的。甚是感觉不好。
于是产生了此问题。
/**
* @param roleId : 要配置菜单的角色ID
* @param menuIds :选择的菜单id List
*/
public void updateMenuConfig(int roleId, List menuIds) {
//..............
}
我目前是采用JDBC做的,先把该角色原来的菜单id全删除,再添加新的。甚是感觉不好。
解决方案 »
- 如何在Action获得url参数 在线等 急
- webservice可以返回的list <T> ,t是多态存在的么?
- 有熟悉JNative的朋友吗
- EJB3之JPA程序结构,完美的异常处理
- 容器的一些问题arraylist和linkedlist,vector之间的区别
- Netbeans中我新建ActionForm的时候没有DynaValidatorForm啊
- 在j2ee sdk中,为什么用asant重新部署war包,就会有问题?
- 那位高手可以帮个忙吗?本人会积极向上努力奋斗的
- 急!一个ejb远程调用另一个ejb的问题!在线等!!
- <Struts2> JSP如何传对象到Action?
- 在线急等:字符的转换encoding正向转换,dencoding反向转换
- c#调用Java webservice中返回值为list<map>的具体方法
先删除,直接添加新的- -!
如此
[/Quote]如果用hibernate做,是否比JDBC那样做会好些,该怎么做呢?
在角色与菜单关系表里删除添加不会影响角色ID或菜单ID啊。
相关对象配置了级联删除/保存之后可以,
关系:role和roleMenuRelation之间的一对多关系
难道是所有的MenuID 用分隔符","拼成一个String存在数据库里的???
如果是这样的话那就很好做,只要更新Role表的 这个MenuString这个字段就行了啊。。
jdbc hibernate都能实现。
每次你只要取出这个串转成List 再用List的一些API操作,操作完后转回去再Update这个MenuString就行了。
Role与Menu的关系:我是用hibernate作的多对多的关系映射,然后它自动给我生成一张两者的关系表啊。不过你这法子挺新鲜的,把对应的id直接弄成一个串保存在一个字段里,更新起来很快的哦。呵呵。