【发布时间】:2017-09-09 15:48:45
【问题描述】:
我正在尝试读取一百万条记录并使用 JPA 将它们转换为 Java 对象。 我们在一分钟内获得数据,但将它们转换为 Java 对象需要更多时间。请让我知道是否有一种方法可以并行化将每个记录转换为其自己的 Java 表示的过程,似乎它是连续发生的。我们使用 Hibernate 框架 (5.0.11) 作为 JPA Provider。
【问题讨论】:
标签: jpa spring-data-jpa jpa-2.0
我正在尝试读取一百万条记录并使用 JPA 将它们转换为 Java 对象。 我们在一分钟内获得数据,但将它们转换为 Java 对象需要更多时间。请让我知道是否有一种方法可以并行化将每个记录转换为其自己的 Java 表示的过程,似乎它是连续发生的。我们使用 Hibernate 框架 (5.0.11) 作为 JPA Provider。
【问题讨论】:
标签: jpa spring-data-jpa jpa-2.0
EntityManager 不能是单线程的。
另一种方法是使用 Springs JdbcTemplate 和 ResultSetExtractor
在查询之后拆分工作负载的另一种方法是首先查询块并在单独的线程中选择每个块。
注意:这种情况的一个常见缺陷是,虽然数据库可能会快速返回第一行,但这并不意味着所有行都可用并且只获取所有行,即遍历结果集可能需要相当长的时间更长。
【讨论】: