Apesar de optar por outra forma de efetuar processamento batch em java (spring-batch por exemplo), achei interessante a maneira de como foi tratada o flush e o clear do entity manager neste artigo.
Boa leitura!
http://blog.caelum.com.br/trabalhando-com-batch-processing-de-maneira-eficaz-utilizando-a-jpa/