gpt4 book ai didi

java - Hibernate 的 persist() 方法

转载 作者:行者123 更新时间:2023-11-30 11:37:13 25 4
gpt4 key购买 nike

下面的说法是否有效?

persist() 还保证如果在事务边界之外调用它不会执行 INSERT 语句

当我使用 persist 尝试下面的代码时;然后在没有任何事务的情况下插入该行(它被注释掉了)。

SessionFactory sessionFactory = new Configuration().configure("student.cfg.xml").buildSessionFactory();
Session session = sessionFactory.openSession();

//Transaction tran = session.beginTransaction();

/*
* Persist is working without transaction boundaries ===> why?
*/

Student student = new Student();
student.setFirstName("xxx");
student.setLastName("yyy");
student.setCity("zzz");
student.setState("ppp");
student.setCountry("@@@");
student.setId("123456");
session.persist(student);
//tran.commit();
session.flush();
session.close();

最佳答案

persist() also guarantees that it will not execute an INSERT statement if it is called outside of transaction boundaries

这个说法是正确的。当控制从 persist() 返回到您的代码时,没有执行任何 INSERT 语句。这些语句保证被推迟到 session 刷新。请注意,如果 ever 没有插入发生,persist() 将是一个毫无意义的方法。

关于java - Hibernate 的 persist() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14138955/

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