我搜索了多種方式和解決方案,使春天hibrenate到一個安全的線程。我是春天和h little的小初學者,我無法做出這個決定。使Spring Hibernate線程安全。 Best solation
我發現這些選項:
使用hibrenate locking爲「破壞」,使衝突與其它事務的任何事務,並從錯誤的數據保存到數據庫中。這有缺點,因爲會成爲只是沒有執行的交易,它會更復雜的工作來完成Thouses請求
只需在一個線程中運行所有事務(至少所有更新),此線程將是「ExecuterThred」,他使共享所有這些交易將按順序執行。這樣就沒有機會了transactoin衝突,但這種方法要依據一個線程你DATABSE春天的服務器,它可以通過useig regular java thread,也許大在實現一個 like this,或使用thread local
讓道同步(或免得所有的更新方法),也沒有機會進行交易衝突,但可以拖動服務器。
更多一點,在我的服務器,任何客戶端都有用戶,並且任何用戶都有唯一的ID。我認爲關於更多一個選項:使任何客戶端能夠在同一時間只發送一個請求(使數據庫不同)的共享。 (我現在可以,因爲我可以使用唯一的ID),如果客戶端這樣做anywey我會迴應與併發錯誤,他可以嘗試再次信。 這將是選項4。
如果你有更多的選項plaese讓我知道。
非常感謝,任何幫助或解釋將是最歡迎
不知道爲什麼你需要擔心這一點。您應該在服務器上使用某種連接池來開始。這已經有多個線程池。 – OldProgrammer
感謝您的回覆。我需要一些工作。我使用mysql和一些時間,我想做一些大的長查詢和更多的查詢和'衝突'發生,通常與一些sql exeption。一些動作我acuatlly也許會出現兩個不同勢交易 –
請出示一些相關的代碼和錯誤。 – OldProgrammer