У меня есть следующий код, который пытается сохранить сущность вне транзакции:
Session session = HibernateUtil.buildSessionFactory().openSession();
Teacher t= new Teacher();
t.setName("jonathan");
session.save(t);
session.flush();
В соответствии с определением save()
, если используется вне транзакции, нам нужно сделать flush()
, чтобы сохранитьсущность в БД. Однако приведенный выше код не сохраняет его.Я должен создать transaction
и commit
, чтобы добавить строку в БД.Почему это так?
Я использую HIbernate 4.3.6
РЕДАКТИРОВАТЬ: я только что заметил, что session.save () возвращает идентификатор, но только после того, как строкаaction.commit () добавлена строкаДругой вопрос не отвечает на мой вопрос. Так как это в основном означает, что save () для добавления строки в db должна быть только в транзакции