我有以下代码尝试将实体保存在交易之外:
Session session = HibernateUtil.buildSessionFactory().openSession();
Teacher t= new Teacher();
t.setName("jonathan");
session.save(t);
session.flush();
根据save()
的定义(如果在事务外使用),我们需要执行flush()
将实体保存在db中。但是上面的代码没有保存它。我必须创建一个transaction
和commit
以便在db中添加一行。为什么会这样?
我正在使用HIbernate 4.3.6
编辑:我只是注意到session.save()返回id,但仅在transaction.commit()添加行之后。另一个问题没有回答我的问题,因为这基本上意味着save()顺序在db中添加行必须仅在事务中