java - 使用同一对象调用休眠的多次 save() 方法是否会在数据库中插入新记录?
问题描述
for(int index=0; index<10; index++) {
Session session = hibernateTemplate.getSessionFactory().openSession();
session.save(object);
}
此代码是否将传递的对象存储在 DB 中的 save(object) 中 10 次,还是每次都会被覆盖?
解决方案
这取决于对象的状态。
如果每次都创建一个新对象,那么新对象处于瞬态:它没有映射到数据库记录,也不受任何持久性上下文的管理。因此,调用 Hibernate 的save()
方法将在数据库中创建一条新记录。
但是,如果您save()
使用已附加到当前持久性上下文并映射到数据库记录的托管对象调用方法:相同的对象将被更新。
推荐阅读
- python - 我无法遍历完整的 l2 列表
- mysql - 为什么这个mysql触发器会出错?
- java - 如何测试 springBoot main() 方法?
- android - 带有 ImageView 的 Android TabsLayout 选项卡
- c# - Cookie 不会在服务器上滑动,但在本地运行时会滑动
- javascript - 滚动 JS 上的动画
- excel - 运行时错误 91,使用 find 方法时
- python - 如何在 Flask 中运行 localhost
- python - 关于从 fastai.vision 导入的问题 *
- javascript - div类,当div在屏幕上时显示警报但每个div只有一次?