Java 保存后插入多对多表

Java 保存后插入多对多表,java,mysql,spring,Java,Mysql,Spring,我有下表,目前我可以更新用户对象以添加或删除角色,但在创建新用户时我无法将角色添加到新用户(用户的角色添加到UI上的同一表单上),因为中间表用户_角色期望其ID为用户Obj,所以在插入时自然会得到一个User.User_ID= 有什么共同的方法来解决这个问题吗?我想在保存后尝试获取插入用户的ID,然后调用我的更新函数。我不想这样做,因为我担心性能,特别是在将来可能发生批量上传时 我正在我的用户存储库上使用Crudepository if(userRequest.getUser().getIdU

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

有什么共同的方法来解决这个问题吗?我想在保存后尝试获取插入用户的ID,然后调用我的更新函数。我不想这样做,因为我担心性能,特别是在将来可能发生批量上传时

我正在我的用户存储库上使用Crudepository


if(userRequest.getUser().getIdUser())UserRole中是否有任何数据具有任何值或只是一个外部参照?我可能只需要完全摆脱UserRole,从user-->role创建一个一对多或一对一映射,并创建一个共享的自动增量id。这样,您就可以在插入到user时将数据级联到role—所有事务都在一个事务中完成。

erRole是否有任何值或只是外部参照?我可能只需要完全摆脱UserRole,从user-->role创建一个一对多或一对一映射,并创建一个共享的自动增量id。这样,您就可以在一个事务中插入到user时将数据级联到角色。

UserRole存在,因为用户可以拥有多个此应用程序中的一个角色。我认为您可以在一个事务中完成所有操作,但我必须查看映射。似乎您可以使用来自用户-->UserRole和viceversa的OneToOne、用户角色-->角色上的OneToMany和角色-->UserRole上的ManyToOne级联所有这些操作。我正在尝试以下操作,我将了解其工作原理。问题在这个时间点上,应用程序的arquit结构应该尽可能少地更改。理解。这会让人困惑。我很难理解的是,我必须,例如,将UserRole对象添加到User类,反之亦然,在提交事务之前,将User设置为UserRole,然后在User中设置UserRole。然后向其中添加第三个表…UserRole存在是因为用户在此应用程序中可以有多个角色。我认为您可以在一个事务中完成所有操作,但我必须查看映射。似乎您可以使用User-->UserRole中的OneToOne和我们的OneToMany来级联所有这些操作erRole-->角色和MANYTONE on Role-->UserRole。我正在尝试下面的方法,我会看看它是如何工作的。问题是,在这个时间点上,应用程序的ARQUITE结构应该尽可能少地更改。明白。这会让人困惑。我很难理解的是,我必须添加UserRole对象到User类,反之亦然-在提交事务之前,在UserRole中设置User并在User中设置UserRole。然后向其中添加第三个表。。。。
    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?
}