我有这个java swing应用程序,有一个线程,一个数据库连接。 每当用户保存或编辑某些内容时,都必须编写如下内容:
private void buttonClickedActionPerformed(java.awt.event.ActionEvent evt) {
EntityManager em = sessionFactory.openSession();
EntityTransaction et = null;
try {
et = em.getTransaction();
et.begin();
// save, merge, update ...
et.commit();
}
catch(PersistenceException pe) {
if(et != null) et.rollback();
}
finally {
if(em != null) em.close();
}
}
我在一些教程中看到了对容器管理的事务的引用或类似于Web应用程序的事务。桌面怎么样?我在这里错过了什么吗?我是否真的需要每次都写下所有这些交易代码?
答案 0 :(得分:0)
DAO看起来像:
public class BaseDao {
protected EntityManager em;
public BaseDao() {
EntityMangerFactory emf = Persistence.createEntityMangerFactory("<your PU>");
em = emf.createEntityMangerFactory();
}
public <E> E find(Class<E> clazz, Serializable id) {
return em.find(clazz, id);
}
public <E> E getReference(Class<E> clazz, Serializable id) {
return em.getReference(clazz, id);
}
public void persist(Object entity) {
EntityTransaction transaction = em.getTransaction();
transaction.begin();
em.persist(entity);
transaction.commit();
}
... and any other methods of the EntityManager.