Мне нужно написать транзакцию. Сотрудник может забронировать отпуск. Но после этого я должен убедиться, что выходной вычтен из его праздничного счета :) Вот почему мне нужна транзакция.
Так что я нашел этот код, чтобы сделать это в спящем режиме 5. Кажется, это самый Обычный подход
Transaction transObj = null;
Session sessionObj = null;
SessionFactory sessionFactory;
try {
sessionFactory = new Configuration().configure().buildSessionFactory();
sessionObj = sessionFactory.openSession();
transObj = sessionObj.beginTransaction();
holidayDao.save(holiday);
user.setVacationDays(user.getVacationDays() - holiday.getNumberOfDays());
userDao.save(user);
transObj.commit();
}catch (Exception ex) {
ex.printStackTrace();
transObj.rollback();
}
finally {sessionObj.close();}
Мой проект довольно большой. Мне пока не приходилось использовать файл hibernate.cfg. xml. Для транзакции вдруг мне нужно использовать одну. Поэтому я просто хочу написать hibernate.cfg. xml, что моя транзакция будет работать позже. Так как я должен это сделать. В hibernate нет другого способа заставить транзакции работать, кроме файла hibernate.cfg. xml. Спасибо за вашу помощь.
Итак, у меня уже есть файл database.properties. (Я использую Spring).
Но теперь, чтобы получить работу SessionFactory, я создам файл hibernate.cfg. xml, который в основном имеет те же свойства, которые уже есть в моем файле database.properties.
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
</session-factory>
</hibernate-configuration>