@PersistenceContext — injects EntityManager. @Autowired — injects any Spring bean.
@PersistenceContext:
1@Stateless2public class UserDao {3 @PersistenceContext4 private EntityManager em;56 public User findById(Long id) {7 return em.find(User.class, id);8 }9}
@Autowired:
1@Service2public class UserService {3 @Autowired4 private UserRepository repo;5}
How it works:
Key difference:
Best practice: