2013-10-05 4 views
0

У меня есть два объекта, entity1 & entity2, управляемый Hibernate, так что если есть ошибка в сохранении объекта 1, объект entity2 не должен быть сохранен. Итак, единица работы здесь состоит из двух отдельных объектов: либо они сохраняются, либо не сохраняются. Мой текущий код выглядит примерно так:Спящий режим работы

public int saveEntity1() 
{ 
a =1; 
begin session; 
start tx; 
save entity1; 
commit tx; 
    when exception 
    rollback tx; 
    a=0; 
return a; 
} 

public int saveEntity2() 
{ 
a =1; 
begin session; 
start tx; 
save entity2; 
commit tx; 
    when exception 
    rollback tx; 
    a=0; 
return a; 
} 

В методе клиента:

public void submitData() 
{ 
    int res = Entity1DAO.saveEntity1(); 
    if(res==1) 
    { 
    Entity2DAO.saveEntity2(); 
    } 
} 

Могу ли я упорствуем 2 объектов в пределах одной и той же транзакции, поэтому я не должен использовать, если заявление в клиентский метод?

+1

Uhm, на каком языке данный код? Псевдокод? Гораздо лучше отрываться от вашего фактического источника. –

ответ

0

Вы можете написать другой способ и начать свою транзакцию.

anotherMethod(){ 

     try{ 
     start tx; 
     method1(); 
     method2(); 
     end tx; 
     }catch(Exception e){ 
     rollBack tx;   
     } 
     } 
Смежные вопросы