@Path(value = "/user")
@Stateless
public class UserService {
@Inject
private UserManager manager;
@Path(value = "/create")
@GET
@Produces(value = MediaType.TEXT_PLAIN)
public String doCreate(@QueryParam(value = "name") String name) {
manager.createUser(name);
return "OK";
}
}
вот менеджер пользователя impl
public class UserManager {
@PersistenceContext(unitName = "shop")
private EntityManager em;
public void createUser(String name) {
User user = new User();
user.setName(name);
// skip some more initializations
em.persist(user);
}
}
проблема в том, что если я не помечаю UserService как @Stateless, тогда поле менеджера пустое
но если я отмечу @Stateless, я могу вставить поле менеджера, и приложение будет работать так, как будто я могу сохранить данные в db
просто интересно, в чем причина этого?
и является ли это предпочтительным способом подключения приложения?
хорошо, я думаю вытащить EntityManager к производителю, чтобы им можно было поделиться