今天在校内项目的过程中,遇到了前端队友提出需求:
- 批量保存一组标签的数据
- 并将这些标签插入数据库时自增产生的id封装成数组返回
这里就涉及到一个,如何获取自增时自动赋值的Id的问题。
让我们先来了解一下save方法的执行过程
- 它会先将对象加入缓存,从而变为持久化对象
- 查看映射文件,并根据指定的生成器为持久化对象分配Id
- 计划执行一个insert语句,把对象当前的属性值组装到insert语句中
- 当session清理缓存的时候,执行sql语句将数据进行保存
通过上面对save方法执行过程的了解,我们可以发现,当执行完save语句后,对象是有Id的,因此我们可以通过执行完save方法后,可以使用getId()的方法来获取自增过程对象所获得的Id
// java代码:
@Override
public int createTag(Tag tag) {
Session session = sessionFacto