Open Session View com jpa

Aguem sabe como implementar com jpa, Open Session View?
eu coloquei aqui embaixo o que fiz, mas nao tenho certeza se esta correto.
E como depois nos no dao eu acessaria o EntityManager para executar as operações com o Banco de dados.

public class OpenSessionViewFilter implements Filter{

	private EntityManager em;
	private EntityManagerFactory emf;

	@Override
	public void doFilter(ServletRequest req, ServletResponse res,FilterChain chain) throws IOException, ServletException {
		System.out.println("Fazendo filtro");
		try {
			em = emf.createEntityManager();
			em.getTransaction().begin();
			chain.doFilter(req, res);
			em.getTransaction().commit();
		} catch (Throwable e) {
		    try {
				if(em.getTransaction().isActive()){
					em.getTransaction().rollback();
				}
			} catch (Throwable t) {
				System.out.println("problemas no filter");
				t.printStackTrace();
			} 
			
		}finally{
			em.close();
		}
		
	}

	@Override
	public void init(FilterConfig arg0) throws ServletException {
		emf = JPAUtil.getInstance().getEmf();
	}
}

[]s e desde já obrigado.

Busque um entityManager normalmente e ao invés de abrir uma transação você chama o método joinTransaction(). [=