У меня есть сервлет Java EE 6, который создает экземпляр FooBarModelImpl
, и этот класс использует JPA для получения некоторых ресурсов.
public class FooBarModelImpl
{
@Resource
UserTransaction ut;
@PersistenceContext(unitName="fooBarUnit")
private EntityManager em;
public void addPackage(UpgradePackageEntity p)
{
try{
ut.begin();
em.persist(p);
ut.commit();
} catch (..) {}
}
}
Модуль сохранения настроен следующим образом:
<persistence-unit name="fooBarUnit" transaction-type="JTA">
Мой вопрос: как мне избавиться от ручного обращения с ut.begin()
и ut.commit()
? Я хотел бы использовать JPA, чтобы контейнер занимался управлением транзакциями.