gpt4 book ai didi

java - 持久化()之后的JPA提交(): Required or Not

转载 作者:行者123 更新时间:2023-11-30 08:03:40 24 4
gpt4 key购买 nike

我正在开发一个 JPA 2.0 项目,我在其中保存我的 Entity 类对象,例如:-

    InitialContext ctx = new InitialContext();
UserTransaction userTrans = (UserTransaction)
ctx.lookup("java:comp/UserTransaction");
EntityManagerFactory emf = Persistence.createEntityManagerFactory(PERSISTENCE_NAME);
EntityManager em = emf.createEntityManager();
User user = new User("ankit","nigam",25);
em.persist(user); // persisted in db after this executes
userTrans.commit(); // whether it is required OR not.

因此,无论我是否使用 userTrans.commit() ,在 persist() 之后,我的 user 对象都会保存在 Db 中执行。但我的一些同事说,作为标准,我们应该 commit() 事务。

我应该遵循什么方法,commit()persist() 背后的逻辑是什么。请点亮一些灯。

最佳答案

您的数据库中自动提交是否开启?如果是的话,这就是为什么无论您是否从应用程序提交事务,更改都会永久存储在数据库中的原因。在生产中,自动提交通常被设置为关闭,因为它会影响数据库的性能/响应时间,这就是为什么通常鼓励开发人员从其应用程序控制事务的提交或回滚。该链接详细介绍了在 db2 中处理自动提交的命令:http://www.db2util.com/administration/options-db2-command-line-disable-autocommit/

关于java - 持久化()之后的JPA提交(): Required or Not,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31490707/

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