首页 > 解决方案 > 在事务之外保存实体

问题描述

我有以下代码试图将实体保存在事务之外:

Session session = HibernateUtil.buildSessionFactory().openSession();
Teacher t= new Teacher();
t.setName("jonathan");
session.save(t);
session.flush();

根据save()if used outside the transaction的定义,我们需要flush()将实体保存在db中。但是上面的代码并没有保存它。我必须创建一个transactioncommit它才能在数据库中添加一行。为什么会这样?

我在用HIbernate 4.3.6

编辑:我刚刚注意到 session.save() 返回 id 但仅在 transaction.commit() 之后添加了行。另一个问题没有回答我的问题。因为这基本上意味着 save() 为了添加db 中的行只能在事务中

标签: javahibernatejpa

解决方案


推荐阅读