gpt4 book ai didi

java - 我什么时候应该关闭实体管理器?

转载 作者:搜寻专家 更新时间:2023-10-30 20:25:25 24 4
gpt4 key购买 nike

什么时候应该关闭与数据库的连接?我在应用程序启动时创建一次连接,然后以这种方式使用实体管理器:

public void createItem(TYPE item){
em.getTransaction().begin();
em.persist(item);
em.getTransaction().commit();
}

public class Connection { //creating connection (one time)
private static final String PERSISTENCE_UNIT_NAME = "ejb";
private static EntityManagerFactory factory;
private static EntityManager em;

static{
factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
em = factory.createEntityManager();
}
public static EntityManager getEntityManager() {
return em;
}
}

我认为在每次操作(如创建)时关闭连接并在我想再次保存项目时创建新连接是没有意义的。

最佳答案

你不应该让 entitymanager 静态化,它应该是一个在你完成交易后被移除的对象。这也意味着您应该在操作完成后将其关闭。 EntitymanagerFactory 可以保持静态,每个程序运行只需要 1 个。你应该关闭它的原因是你在浪费你设备上的资源。

关于 EMF 的更长/更好的解释 https://stackoverflow.com/a/4544053/6270761

关于java - 我什么时候应该关闭实体管理器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36981239/

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