gpt4 book ai didi

java - HibernateUtil 与 JPA

转载 作者:行者123 更新时间:2023-12-01 19:18:25 25 4
gpt4 key购买 nike

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com