java - 为什么session.setFlushMode(FlushMode.MANUAL);之后数据存入数据库 session .保存(); ( hibernate )

标签 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();

我只是不明白为什么当我指定刷新是手动时数据会存储到数据库中?请帮我解决一下!

最佳答案

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

HIbernate commit() and flush()

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

关于java - 为什么session.setFlushMode(FlushMode.MANUAL);之后数据存入数据库 session .保存(); ( hibernate ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42375131/

相关文章:

java - Hibernate 将数据库列重置为默认值?

java - 在 hibernate 中一对一和多对一(unique = true)获取的奇怪行为

java - 是否有执行死锁检测的 Lock 实现?

java - 如何在 Wordnet 中获取 Synset 偏移量以便在 Imagenet 中使用

mysql - JPA/Hibernate 查询执行时间太长

mysql - HQL 左连接不起作用

Java、Hibernate、MySQL - 存储 UTC 日期时间

java - AsyncHttpClient 中的 ArrayList iterator.remove() 抛出 IllegalStateException

java - 静态初始化 block 和常规静态初始化之间的区别

java - Android可扩展ListView图像