保存后插入多对多表

时间:2016-03-09 05:31:16

标签: java mysql spring

我有下表,目前我可以更新User对象以添加或删除角色,但是在创建新用户时我不能添加角色(用户的角色添加在同一个用户上) UI上的表单)因为中间表User_Role期望用户Obj获取他的ID,所以插入时自然会得到User.User_ID =?。

有什么常用方法可以解决这个问题吗?我正在考虑尝试在Save之后获取插入用户的ID,然后调用我的更新功能。我不想这样做,因为我担心性能问题,特别是将来批量上传可能会发生。

我在我的userRepository上使用CrudRepository。

enter image description here

    if(userRequest.getUser().getIdUser() <= -1){
        newUser.setIdUser(0);
        newUser.setIsActiveUs(true);
        newUser.setDateOfJoin(getCurrentDate());
        nuser = usersRepository.save(newUser);
        //Get created user and send it to update() with the roleList?
}

1 个答案:

答案 0 :(得分:0)

UserRole中是否有任何数据具有任何值或者只是外部参照?我可能只是完全摆脱UserRole,创建一对多或一对一的用户映射 - &gt;角色,并创建一个共享的auto_increment id。这样,您可以将数据级联到插入到用户的角色 - 所有这些都在一个事务中。