2017-01-30 10 views
-1

Я новичок в Hibernate, я до сих пор не понимаю, как это работает с объектом import org.hibernate.Transaction;. Сейчас я пишу операции CRUD для Person Сущности, я написал эту реализацию, основываясь на том, что я нашел на веб-сайте:Hibernate - Операция ввода в транзакции

public void save(Person p) { 
    Session session = this.sessionFactory.openSession(); 
    Transaction tx = session.beginTransaction(); 
    session.persist(p); 
    tx.commit(); 
    session.close(); 
} 

Мой вопрос, то почему я должен использовать объект транзакции? Что случилось, если я не использую его? Наконец, требуется использовать в каждой операции CRUD? Я заметил, что в операциях чтения (поэтому, когда мы не записываем в БД и получаем запрос только список объекта Person), разработчики не помещают код в транзакцию.

ответ

0

Почему я должен использовать объект Transaction?

В системах управления базами данных транзакция представляет собой Единицу работы, и каждая из них должна быть независимой от других, чтобы в случае возникновения каких-либо сбоев система могла восстанавливаться, а уже существующие данные не потеряно. Объект транзакции помогает вам достичь этого. Дата сохраняется только тогда, когда вы совершаете транзакцию в случае любого сбоя до того, как все изменения будут отменены.

Должен ли я использовать его в каждой операции с помолом?

Обычно для операций чтения вам не нужен объект транзакции, но он снова спорный, обратитесь к this за дополнительной информацией о транзакциях в операциях только для чтения. Но для операции Create, Update и Delete вы всегда должны использовать транзакцию.