2014-02-17 6 views
0

약 2 백만 포인트 (위도와 경도)의 googlemap에서 히트 맵을 생성하려고합니다. 내 생각은 테이블에서 포인트를 읽고 목록의 Google API로 전달하는 것입니다. 문제는 List에 2 백만 포인트를로드하면 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를 사용하고 있습니다. 당신이 Iterator 당신 자신의 구현을 만드는 방법에 대한 생각, 또한 http://code.google.com/p/vanilla-java/wiki/HugeCollections

:

+0

목록의 초기 용량을 설정하는 것이 도움이 될 것입니다. – Incognito

+0

이 경우 페이지 매김 쿼리> http://en.wikibooks.org/wiki/Java_Persistence/Querying#Pagination.2C_Max를 사용해보십시오. 2FFirst_Results – Sergio

+0

감사합니다 @Chechus. 페이지 매김 쿼리를 시도하고 결과를 확인하겠습니다. – jpr

답변

1

당신은 좀 걸릴 수 있습니다? 그런 다음 반복자가 다음 단계를 수행 할 때 필요에 따라 필요한 데이터를 검색 할 수 있습니다.

다른 옵션은 페이지 매김을 할 때처럼 데이터 집합을 분할하는 것입니다.

관련 문제