[英]Transactions in hibernate
我剛冬眠
在我的項目中,我需要處理交易。 如何使用兩類處理聲明式事務
例子:
//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中的插入失敗,則事務應回滾並刪除與類A相對應的表A中插入的記錄
請使用聲明式事務來幫助我。...
感謝adavace ...
像其他任何事物一樣,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()之間的任何操作失敗,則所有操作都會回滾。
您可能對會話處理有疑問,但這是另一個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.