私はドキュメントでこれを読みました:
persist() also guarantees that it will not execute an INSERT statement if it is called outside of transaction boundaries.
しかし、このコードを試すと:
SessionFactory sessionFactory = new Configuration().configure("student.cfg.xml").buildSessionFactory();
Session session = sessionFactory.openSession();
Student student = new Student();
student.setFirstName("XXX");
student.setLastName("YYY");
student.setCity("ZZZ");
student.setState("PPP");
student.setCountry("XXX");
student.setId("NNN");
session.persist(student);
session.flush();
session.close();
レコードが挿入されています。上記のコードでわかるように、トランザクションは使用していません。その場合、ドキュメントによれば、データはDBに挿入されるべきではありませんか?
トランザクション境界は、 と の間の操作を意味しますTransaction tran = session.beginTransaction();
かtran.commit();
?
どこで間違いを犯しているのか教えてください。
よろしく、