我在我的项目中使用jpa。但我必须调用所有方法并连接到数据库。我想连接一次数据库与entitymanagerfactory和其他想要使用的方法。我做了静态entitymanagerfactory和entitymanager因此ı采取交易活跃的错误。
如何与jpa进行公共连接?
答案 0 :(得分:1)
由于我怀疑稍后会出现其他问题,我建议您按照this tutorial说明如何制作Java SE JPA应用程序。更完整的基础教程here非常关注Sun自己的工具集和组件,但基础知识和示例代码可能对您有所帮助。
无论如何,开始看起来像这样:
public static void main(String[] args) {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("PersistenceUnitName");
EntityManager em = emf.createEntityManager();
// let's start a transaction, everything we do from here on can be either
// committed or rolled back, ensuring the integrity of our data
em.getTransaction().begin();
// update the database here
// okay, done
em.getTransaction().commit();
// and housekeeping, close em an emf
em.close();
emf.close();
}
正如你所看到的,em和emf都不是静态的。如果您(如您所愿)在对象中细分项目,则可以将em
传递给将使用它与数据库交互的这些对象。此外,您不仅限于只有一个跨越应用程序整个生命周期的大事务,您可以连续几个。