簡體   English   中英

HIbernate中的交易

[英]Transaction in HIbernate

在以下代碼中:

SessionFactory sessionFactory = new Configuration().configure("student.cfg.xml").buildSessionFactory();
    Session session = sessionFactory.openSession();
    //Transaction tran = session.beginTransaction();
    session.save(student);
    //tran.commit();
    session.flush();
    session.close();

無論我是否評論/取消注釋交易,它們都可以正常工作,即無需交易,也可以成功執行保存操作。 但是,當我檢查文檔時,他們總是在插入更新刪除之前使用事務。 有什么具體原因嗎? 我錯過了什么嗎?

請讓我知道這件事。 我很困惑:(

問候,

當您始終使用自動提交時,它可能會損害您的數據庫。 假設你想一次完成一堆工作。 在這種情況下,您需要在完成所有工作后創建事務並提交所有工作。 例如,您需要為原子工作執行大量數據庫訪問。 在這種情況下,您需要完成事務中的所有工作並提交所有工作。

Session session = factory.openSession();
Transaction tx = session.beginTransaction();

// do some work
tx.commit();

當然還有你的捕獲塊。

閱讀文章是從JBOSS

有一點我相信如果你不使用事務(在某些時候你可能需要它,如果不需要原子操作)那么任何與數據庫相關的操作都會命中數據庫。 它使系統瘋狂。 如果你做事務,那么hibernate會在同一個事務中執行所有操作一次命中db。 在某些時候,我之前讀過的地方。

我認為hibernate中的非選擇查詢正在執行多個查詢(或使用多個操作),這就是為什么我們需要事務來執行它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM