2016-10-10 13 views
3

我有一个Spring Web应用程序,它使用Spring Data JPA与数据库进行交互。我有一张包含数百万条记录的表格,我想导出包含大量数据的CSV,因此我考虑使用Stream。春天的数据JPA获取数据作为对象的列表流

@Query(value = "SELECT * FROM table WHERE id=:id", nativeQuery = true) 
public Stream<Object[]> getData(@Param("id") long id); 

执行查询工作正常,我也得到了数据流,但是,当我尝试处理流,我得到ClassCastExceptionBigInteger不能转换为Object出现问题。 有人可以提出我错在哪里。

+2

难道你没有相应的实体库吗? '流'似乎更合理 –

+0

不,我没有存储库的实体,我也加入了多个表(查询没有显示问题),所以我期待结果集有多列(可能会有所不同),我不能有一个Object数组的列表。 – Apollo

+0

我将切换到此任务的JdbcTemplate。 –

回答

0

您得到了ClassCastException,因为它只提取select查询中的第一个字段,它可能是一个数字类型。 我有相同的问题,并更新版本1.4.1.RELEASE春季启动启动父母亲使它的作品。 (spring-data-jpa:1.10.3.RELEASE hibernate-core:5.0.11.Final)

+0

更新我的春天IO到雅典RELEASE解决了我的问题。 – Apollo