NutzCN Logo
问答 更新映射字段,无法更新映射表
发布于 2711天前 作者 老司机 2154 次浏览 复制 上一个帖子 下一个帖子
标签: dao 映射
  Role chairman = dao.fetch(Role.class, "Chairman");
  User user = dao.fetch(User.class, "admin");
  user.addRole(chairman);
  dao.updateLinks(user,null);

这代码无法更新user_role映射表,日志也不报错,附addRole

 public User addRole(Role role) {
        if (this.roles == null) roles = new ArrayList<Role>();
        roles.add(role);
        return this;
    }
10 回复

中间表? 用updateRelation

@wendal
* @param chain
* 针对中间关联表的名值链。
这句没看懂,chain该怎么写?

@wendal
chain
* 针对中间关联表的名值链。
这句没看懂,chain该怎么写?

@wendal chain是什么?怎么写,备注没看懂

@wendal chain键是什么?值是什么?

更新关系表,按情况增删意思吗? 那得先清除关系,然后重新插入关系

@wendal 没用啊,chairman是一个定义了@Name的实体类,而且这chairman是从数据库里取出来,

Role chairman = dao.fetch(Role.class, "Chairman");

,再加到新的user里面,这样执行dao.insertWith会把user下面的role也insert,就会导致@Name不唯一然后报错,怎么解决这个问题,而且role跟user是多对多,不能删掉role然后一起插

insertRelation哦

@wendal insertRelation可以插进去,那删除和修改呢??updateRelation的chain - 针对中间关联表的名值链。没看懂,chain这个类该怎么生成键是谁,值是谁??

先清除关系,再插入关系

添加回复
请先登陆
回到顶部