2014-02-17 66 views
0

我试图在googlemap上生成热图,大约有200万个点(经度和纬度)。我的想法是读取表格中的要点,并将它们传递给List中的Google API。问题是,将200万个点加载到List中会导致EJB中的内存不足错误。以下是给我的错误。将数据加载到列表中时内存不足异常

List<Earthquakerisk> earthquakeRiskList = em.createNativeQuery("SELECT ASTEXT(geomArea) as geomText, riskvalue,id FROM Earthquakerisk e",Earthquakerisk.class).getResultList(); 

可以应用哪些替代方法来读取点并将它们加载到地图中?我使用glassfish 3.2.2,jdk 1.7,jsf 2.2,ejb。

+0

也许设置List <>的初始容量应该有所帮助:) – Incognito

+0

在这种情况下,您应该尝试使用分页查询> http://en.wikibooks.org/wiki/Java_Persistence/Querying#Pagination.2C_Max。 2FFirst_Results – Sergio

+0

谢谢@Chechus。我会尝试分页查询并确认结果。 – jpr

回答