为什么在session.setFlushMode(FlushMode.MANUAL)之后将数据存储到数据库; session.save(); (休眠)

时间:2017-02-21 18:26:31

标签: java hibernate

我有下一个代码:

    Color color = new Color(null,"B12",null,1);

    Session session=sessionFactory.openSession();
    session.setFlushMode(FlushMode.MANUAL);

    session.beginTransaction();
    session.save(color);
    session.clear();

    session.getTransaction().commit();

    session.close();

    sessionFactory.close();

当我指定flush是手动的时候,我只是不知道数据存储到数据库的原因?请帮我解决一下!

1 个答案:

答案 0 :(得分:1)

原因是session.getTransaction()。commit()保存对数据库的所有更改。请参阅此stackoverflow帖子。

HIbernate commit() and flush()

Flush用于在提交之前将项目推送到数据库。