Менеджер персистентности должен обычно закрываться? Можете Вы просто сохранить одно открытое и снова использовать все это время, т.е. просто повторить этот шаблон:
Transaction tx = pm.currentTransaction();
try {
tx.begin();
// do stuff
tx.commit();
} finally {
if (tx.isActive()) tx.rollback();
}
Каковы оборотные стороны этого? Это, кажется, имеет смысл, поскольку Вам никогда не было бы нужно к объектам 'detatch' из-за закрываемого менеджера персистентности?