我不知道 HibernateUtil 是什么...... JPA 是否必需?
我将 JPA 与 GWT 结合使用,这个实现是否足够?
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
public final class EMF {
private static final EntityManagerFactory emfInstance =
Persistence.createEntityManagerFactory("default");
private EMF() {}
public static EntityManagerFactory get() {
return emfInstance;
}
}
使用时:
public class AccountDao {
public static final EntityManager entityManager() {
return Emf.get().createEntityManager();
}
public void createAccount(Account account) {
EntityManager em = entityManager();
EntityTransaction tx = em.getTransaction();
try {
tx.begin();
em.persist(account);
tx.commit();
}
catch (Throwable t) {
t.printStackTrace();
tx.rollback();
}
finally {
em.close();
}
}
}
查看此post (Gilead JPA configuration)请。我还不明白,如何使用 HibernateUtil、HibernateJpaUtil 或 PersistentBeanManager 之类的东西...
最佳答案
要将 Gilead 与 GWT 结合使用,请首先更改您的 GWT-RPC 服务实现
public class MyServiceImpl extends RemoteServiceServlet implements MyService {
....
}
进入:
public class MyServiceImpl extends PersistentRemoteService implements MyService {
....
}
然后,在这些类的构造函数中,调用方法setBeanManager(beanManager)
。按照我的 other answer 中所述执行设置。以下是完整的代码片段供引用:
public class MyServiceImpl extends PersistentRemoteService implements MyService {
public MyServiceImpl() {
EntityManagerFactory emf = EMF.get();
HibernateJpaUtil hibernateJpaUtil = new HibernateJpaUtil();
hibernateJpaUtil.setEntityManagerFactory(emf);
PersistentBeanManager persistentBeanManager =
GwtConfigurationHelper.initGwtStatelessBeanManager(hibernateJpaUtil);
setBeanManager(persistentBeanManager);
}
// Service methods follow here
}
这对于设置来说已经足够了 - Gilead 然后会在幕后自动使用 bean 管理器(和 HibernateJpaUtils),您不必直接与它交互。您所要做的就是确保您的实体扩展了 net.sf.gilead.pojo.gwt.LightEntity
。
关于java - HibernateUtil 与 JPA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5584097/