虽然这里还有其他类似的问题,但我没有看到任何能解决所有问题的问题,也没有一个很好的明确答案。本质上,我正在使用Hibernate支持的JPA架构J2EE应用程序中的数据访问和服务层。
应用程序执行大型数据加载/更新操作,我希望确保这些操作尽可能高效地进入数据库。正确的答案将用代码解释如何使用大量的数据集合来进行插入、更新和理想的合并。
identifiers?
注意,我已经问了一些有关Hibernate和J2EE/JPA的相关问题,如果您有什么需要添加的,请执行以下操作
这两种技术对我来说都是相对较新的技术(见我的其他问题):
How should EntityManager be used in a nicely decoupled service layer and data access layer?
和
Should raw Hibernate annotated POJO's be returned from the Data Access Layer, or Interfaces instead?
发布于 2011-10-25 07:09:52
当使用标识生成器时,我可以解释关于Hibernate禁用批处理插入的语句。
为了使Hibernate能够使用标识生成器获得新实体的标识符,它必须实际执行对数据库的插入,然后执行选择以获得该标识符值,因为该值是由Insert上的数据库分配的。这与使用序列生成器形成了对比。在这种情况下,Hibernate可以预先获得尽可能多的标识符(如果需要,可以分批进行),并在插入之前将它们分配给正在插入的实体。
因此,区别是插入,然后选择身份生成器与选择,然后插入一个序列。
因此,Hibernate必须在使用标识生成器时逐一执行插入,但在使用序列生成器时可以对其进行批处理。
https://stackoverflow.com/questions/7884765
复制相似问题