java - 以一种方法保存到两个表
问题描述
如何以一种方法安全地将数据保存到两个表中?我插入一个表并更新到另一个表。@Transactional 就足够了吗?
像这样:
@Transactional
@PostMapping("/companies/add")
public ResponseTransfer addCompanies(@RequestBody CompaniesModel companiesModel, HttpServletResponse response) {
UsersModel usersModel;
try {
usersModel = getUsersModel();
if(usersModel.getFKuserAccountTypes().getRoleId() == 1) {
companiesRepository.save(companiesModel);
} else {
AccountTypesModel accountTypesModel = getRoleById(2);
usersModel.setFKuserAccountTypes(accountTypesModel);
usersRepository.save(usersModel);
companiesRepository.save(companiesModel);
CeosModel ceosModel = new CeosModel(usersModel, companiesModel);
ceosRepository.save(ceosModel);
}
[下一行代码] }
在这种情况下成功之后的 CompaniesRepository.save(companies Model) ;,如果 ceoRepository.save(ceosModel); 将无法正确执行,数据不会输入到 CompaniesRepository 中?
解决方案
推荐阅读
- mysql - 仅当一个表中的所有行都在另一个表中时,才在 ruby on rails 2.3.3 中加入 MySQL 表
- amazon-web-services - 为什么在具有 Deny 效果的 Bucket 策略中将委托指定为 NotPrincipal 时委托给 Account 不起作用?
- c++ - 通过使用 eglExportDMABUFImageQueryMESA 和 GL_RGBA(A 结束)在两个应用程序之间的纹理共享问题
- html - 如何在手机屏幕上更改网站项目的顺序
- docker - docker-compose 容器之间的连接
- google-api - 如何在 Google Photos API 中为媒体项目添加定位丰富?
- javascript - Javascript - 当值为...时更改表格中的文本颜色
- node.js - 将 Node.js 与 React 连接起来
- python - 我不断收到错误名称'y_test'未定义
- sql - Laravel 模型在托管后使用 id = 0 创建