【发布时间】:2016-08-18 11:40:24
【问题描述】:
在某些情况下,我需要读取数据库表的所有行以进行批处理。对于与 db 的通信,我使用 DAO。所以在服务层我可以做类似dao.getAll()的事情。为此,我需要从 dao 返回每一行 db。如果出现“内存不足错误”,我无法返回包含所有实体的 List,因为表非常大。分页不是一个好的解决方案,因为它会导致多次数据库调用。
所以有一个叫做ScrollableResults 的东西,它允许我滚动浏览所有实体并处理每一行而不会溢出内存。由于我使用的是 DAO,我必须将每一行从 DAO 返回到服务层。我怎样才能做到这一点?是否有其他解决方案可以解决此问题?我正在使用带有嵌入式 Derby 数据库的 Hibernate。
【问题讨论】: