2011-01-07 92 views
0

我新來休眠在休眠交易

在我的項目中,我需要處理交易。 如何處理聲明式事務與兩類

例子:

//class 1 
class A{ 

    createA() 
    { 
    insert(A); 
    } 
} 

//class 2 
class B 
{ 
    createB() 
    { 
    insert(B); 
    } 
} 

//class 3 
@Transaction(Exception.class) 

class C 
{ 

    test() 
    { 

    create(A); 

    create(B); 

    } 
} 

按照上面的代碼是否有可能來處理事務,以這樣的方式,如果在ClassA的成功和刀片插入在CLASSB失敗,那麼事務應該回滾,並刪除相應的類在表中插入備案

請幫我這使用聲明式事務....

感謝adavace ....

回答

6

像任何其他支持交易的Hibernate。所以你只需要在事務中包裝調用update()和save()。

例子:

Session sess = factory.openSession(); 
Transaction tx = null; 
try { 
    tx = sess.beginTransaction(); 

    // your updates to the database 
    create(A); 
    create(B); 


    tx.commit(); 
} 
catch (RuntimeException e) { 
    if (tx != null) tx.rollback(); 
    throw e; // or display error message 
} 
finally { 
    sess.close(); 
} 

,你會得到你的願望。如果在beginTransaction()和commit()之間有任何失敗,則所有事情都會回滾。

您可能對會話處理有疑問,但這是一個不同的問題。

+0

感謝Milenkoski,iam試圖使用聲明性transacrtion,所以你可以幫我這樣 – kumar1425 2011-01-07 09:42:28