java - spring data JPA repository.save方法自动保存所有实体?
问题描述
在下面的代码中,为什么将 user1 保存到数据库中?repository.save 方法自动保存所有实体?</p>
@RestController
@RequestMapping("/test")
public class Test {
@Autowired
private UserRepository userRepository;
@PostMapping("/test")
public void test() {
User user1 = userRepository.findById(1);
user1.setPhone("1");
User user2 = userRepository.findById(2);
userRepository.save(user2);
}
}
解决方案
基本上,这取决于您的事务边界,如果您有一个活动的非只读事务并且您正在对托管(附加)实体进行一些修改,那么一旦提交事务,所有更改都将被保存/持久化。这是 JPA/Hibernate 的基本原理。如果不需要更改,则不应修改理想的附加实体。
推荐阅读
- c# - 需要时滚动 Telerik RadTextBox - 不是 RadTextBoxControl
- c# - 创建新表删除以前创建的表
- javascript - (index):44 Uncaught TypeError: Cannot read property 'type' of undefined ;at getanswer ((index):44) ;at HTMLButtonElement.onclick ((index):204)
- javascript - 如何处理表单 API 提交警报消息?
- mysql - 在sql中按日期小时分组
- javascript - “RectAreaLightHelper”在 React-three-fiber 中不动
- node.js - Cookie 不会保存在浏览器中
- mqtt - 通过 mqtt 从设备更新 IOT Central 中的可写属性
- istio - istio 如何进行基于权重的 tcp 流量转移?
- vba - Word-VBA-为什么我在内容控件中输入值后占位符文本会发生变化?