我有两个实体,名为student和course与ManyToMany 关系。正如我在这篇文章中读到的,我们可以调用 save 方法来保存事务中的相关实体,否则一旦会话被刷新,它就会被保存。我也理解导致此异常的典型级联问题,但在这里我也处理了它,但是我仍然在调用 save 方法时遇到 TransientObjectException 而persist 方法工作得很好。有人可以解释一下这里发生了什么吗?
这是我的代码:
SaveVsPersistTest.java
public class SaveVsPersistTest {
public static void main(String[] args) {
// Create session factory object
SessionFactory sessionFactory = new Configuration()
.configure("hibernate.cfg.xml")
.addAnnotatedClass(Student.class)
.addAnnotatedClass(Course.class)
.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
Student student = new Student("Gopal");
Course course1 = new Course("Java");
Course course2 = new Course("C++");
student.addCourse(course1);
student.addCourse(course2);
session.save(student);
transaction.commit();
session.flush();
}
}
吃鸡游戏
慕丝7291255
相关分类