일괄 처리로 쿼리를 실행하는 JPA 솔루션 (공급 업체 독립적)을 찾고 있습니다. 스레드의 안전성뿐만 아니라 성능을 향상시키는 것이 과제입니다.JPA 2.0 : 일괄 쿼리, 안전 및 성능?
예 쿼리 :
Query query = em.createQuery("select e from Entity e where e.property in :list");
목록 따라서 1 385000. 간의 크기의 집합으로 배치 요건이 조회된다.
최초의 순진한 접근법은 원래 목록에서 하위 목록을 가져와 완료 될 때까지 반복하는 것이 었습니다. 이것은 공연자가 아니 었음을 제외하고는 안전하고 잘 작동했습니다.
두 번째 방법은 임시 테이블 위에 목록에서 모든 (유 영구하지만 임시 테이블로 사용)을 넣은 다음 원래 쿼리를 사용하여 임시 테이블에 가입했다. 이것은 확실히 성능이 뛰어나지 만, 각 일괄 처리 후에 임시 테이블을 지우고 임시 테이블에 그 스레드 ID 나 그 종류의 것을 가지고 있지 않아도 안전하지 않습니다 (현재는 안전하지 않습니다).
난 정말이 문제를 해결하기 위해 확대됨과 안전한 방법에 도달하기 위해 제안을 부탁드립니다. 그것은 선택 조항이 없기 때문에
감사
모든
업체 :
select e from Entity e, TempEntity temp where e.property = temp.property and temp.uuid = :uuid
감사합니다. 질의를 조금이라도 끝내면 수정되어 수정 될 것입니다. – JProgrammer