hibernate更新集合时怎么做比较好?如:更新一个角色所拥有的菜单?通过前台的菜单配置,后台得到了某个角色的所有菜单id,然后准备更新Role里的menus集合。
于是产生了此问题。
/**
 * @param roleId : 要配置菜单的角色ID
 * @param menuIds :选择的菜单id List
 */
public void updateMenuConfig(int roleId, List menuIds) {
//..............
}
我目前是采用JDBC做的,先把该角色原来的菜单id全删除,再添加新的。甚是感觉不好。

解决方案 »

  1.   

    用jdbc的话,暂时还想不出什么好办法.!   LZ如果项目赶急的话先实现功能, 优化是后一步的事
      

  2.   

    不用jdbc,还有什么方法可以做的
      

  3.   

    引用 5 楼 closewbq 的回复:
    先删除,直接添加新的- -!
    如此
    [/Quote]如果用hibernate做,是否比JDBC那样做会好些,该怎么做呢?
      

  4.   

    如果有id跟另外的表有关联, 那你原来删除的id 在别外的表不是就找不到了?
      

  5.   


    在角色与菜单关系表里删除添加不会影响角色ID或菜单ID啊。
      

  6.   

    用hibernate方法做原理也是一样的,先删除关系表里的数据,再插入
    相关对象配置了级联删除/保存之后可以,
    关系:role和roleMenuRelation之间的一对多关系
      

  7.   

    不知道你Role对象的List<MenuId>在数据库里怎么体现关系模型的。
    难道是所有的MenuID 用分隔符","拼成一个String存在数据库里的???
    如果是这样的话那就很好做,只要更新Role表的 这个MenuString这个字段就行了啊。。
    jdbc hibernate都能实现。
    每次你只要取出这个串转成List 再用List的一些API操作,操作完后转回去再Update这个MenuString就行了。
      

  8.   


    Role与Menu的关系:我是用hibernate作的多对多的关系映射,然后它自动给我生成一张两者的关系表啊。不过你这法子挺新鲜的,把对应的id直接弄成一个串保存在一个字段里,更新起来很快的哦。呵呵。