Я новичок в JPA и Hibernate.Я пытаюсь вставить Thing
в мою таблицу Thing
в моей базе данных, используя entityManager.persist()
.Когда я делаю это внутри сервлета, добавляется Thing
, но когда я делаю это из отдельного класса и вызываю метод из сервлета, Thing
не добавляется.
Это работает:
// servlet
@PersistenceContext
EntityManager em;
@Resource
UserTransaction utx;
protected void processRequest(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
try {
Thing thing = new Thing("word");
utx.begin();
em.persist(thing);
utx.commit();
} catch (Exception ex) { }
}
Но это не так:
// servlet
protected void processRequest(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
Thing thing = new Thing("word");
ThingDao thingDao = new ThingDao();
thingDao.add(thing);
}
Учитывая,
// ThingDao
public class ThingDao {
@PersistenceContext
EntityManager em;
@Resource
UserTransaction utx;
public void add(Thing thing) {
try {
utx.begin();
em.persist(thing);
utx.commit();
} catch (Exception ex) { }
}
}
Почему второй метод не работает?Как мне заставить это работать?