[英]Is JPA's flush and JDBC Batch works as same internally?
根据我的理解,JPA 实体管理器的 flush() 方法将在单个数据库网络调用中将持久性上下文中可用的数据与数据库同步。 因此,当有人试图保留大量记录时,它避免了多次数据库调用。 为什么我不能将其视为 JDBC 批处理插入的等效批处理(我知道 flush() 可能不会为此目的实现)? 因为,JDBC 批量插入也使用相同的想法,即它只对添加到语句对象的所有语句进行单个 DB 调用?
从性能的角度来看,两者具有可比性吗? 他们使用相同的技术吗? 在内部,在数据库端两者都会生成相同数量的查询?
有人请让我明白其中的区别。
entitymanager 将在单个数据库网络调用中将持久性上下文中可用的数据与数据库同步
一点都不。 那是不可能的。 刷新可能会从多个表中删除,插入多个表,并更新多个表。 这不能在单个网络调用中完成。
刷新可以使用批处理语句来执行多个类似的插入或更新。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.