2015-12-10 8 views
0

У меня есть функция, которая имеет некоторые вложенные операторы if и запрос в каждом из операторов if, как мне управлять транзакциями и сеансами. Я знаю, что я должен привязывать каждый вызов с отдельной транзакцией.Как я могу управлять сеансами и транзакциями в спящем режиме?

Session session=null; 
Transaction tx=null; 
if(!list.isEmpty()){ 
    session=factory.openSession(); 
    tx=session.beginTransaction(); 
    session.createQuery(" update Tbluser set loggedStatus='9'").executeUpdate(); 
    tx.commit(); 
    session.close(); 
    if(list.get(1)=="N") 
    { 
     ///some query 
    } 
} 

Должен ли я еще не закрывать сеанс или я должен создать новый объект Session для нового запроса, который у меня есть? или какой еще должен быть правильный подход?

+0

что-то не работает? Хороший способ учиться - экспериментировать самостоятельно. –

+0

все работает отлично, но качество работы должно быть правильным! –

+0

использовать соединение пула DB –

ответ

0

Если все операции в блоках if связаны и являются атомарными, вам следует рассмотреть возможность открытия одного сеанса и транзакции перед первым блоком if и фиксацией/закрытием после последнего блока if.

Если каждая операция является отдельной, то вы можете открыть один сеанс до первого, если и заключить каждый, если в новой транзакции.

Смежные вопросы