java - HibernateUtil 与 JPA

标签 java hibernate gwt jpa gilead

我不知道 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/

相关文章:

java - 使用 Spring 的属性注入(inject),无需启动整个上下文

c# - 性能有什么问题吗?

java - JPA Hibernate 一对一关系

java - 带有时间戳和日期字段的 JPA 选择查询无法检索结果

java - GWT-RPC 和 RequestFactory 是互斥的吗?

gwt - GWT中的分页

java - Spring 启动: MockMvc returning strange responses

java - 如何获得生成从 1 到 56 的 4 个不同随机数的代码?

java - 级联/嵌套异步调用的模式

java - Spring 事务传播和乐观锁定的问题