微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – JPA flush vs commit

在JPA中,如果我们调用EntityTransaction.commit(),它会自动调用EntityManager.flush()吗?或者我们应该叫他们俩?有什么不同?因为我有JPA的问题,当我将实体插入数据库时​​,我调用persist().在数据库中,数据已被插入(可以获取),但该数据不会显示在我的应用程序中(我使用findAll()获取它).它出现在另一个实体上.有什么我不知道的吗?我正在使用标准的Spring CRUD,JPA resource_local和postgresql.对不起我的英文,提前谢谢

解决方法:

if we call EntityTransaction.commit(), does it automatically call
EntityManager.flush()?

what is the difference?

在flush()中,数据的更改在遇到flush后反映在数据库中,但它仍然在transaction.flush()中必须包含在事务上下文中,除非需要,否则不必显式执行(在极少数情况下) ),当EntityTransaction.commit()为你做这件事.

Source

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐