【发布时间】:2016-10-10 16:33:01
【问题描述】:
我有一个 Spring Web 应用程序,它使用 Spring Data JPA 与 DB 进行交互。我有一个包含数百万条记录的表,我想导出一个包含大量数据的 CSV,为此我考虑使用 Stream。
@Query(value = "SELECT * FROM table WHERE id=:id", nativeQuery = true)
public Stream<Object[]> getData(@Param("id") long id);
执行查询工作正常,我将数据作为流获取,但是当我尝试处理流时出现问题,我得到ClassCastException,即BigInteger 无法转换为Object。
有人可以建议我在哪里弄错了。
【问题讨论】:
-
您没有相应的
Entity用于存储库吗?Stream<Entity>似乎更合理 -
不,我没有存储库的实体,而且我正在加入多个表(查询未在问题中显示)所以我期待一个包含多个列的结果集(可能会有所不同),我不能有一个对象数组的列表吗?
-
我会切换到 JdbcTemplate 来完成这个任务。
-
JDBC 模板不会在内存中获取和保存记录吗?
标签: java spring spring-data spring-data-jpa java-stream