So far, i can imagine of three ways:
@PersistenceContext private EntityManager entityManager;
No Seam needed for this injection, as the ejb-container will do it for you
@In private EntityManager entityManager;
Seam is needed, as you are injecting the seam managed persistence context.
EntityManager em = (EntityManager)Component.getInstance("entityManager");
Same as before. But in comparison you do not rely on a seam interceptor for the injection.
Very useful for components having the @ByPassInterceptor
Hope this helps you a bit...