由Hibernate拋出的異常未經檢查,從我在其他地方看過的內容看來,它們似乎不應被捕獲到代碼中。但是,這意味着當例如發生臨時數據庫錯誤時,它發生的線程死亡,我們的應用程序變得無法響應。應該怎麼做?發生如何處理獨立Java應用程序中的Hibernate異常
例例外:
javax.persistence.PersistenceException
Caused by: org.hibernate.exception.GenericJDBCException: could not insert
Caused by: java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction
當應用程序已經運行了幾個小時或幾天會出現這種情況。
我讀過的大部分內容都是關於如何將Hibernate集成到Spring或類似應用程序時討論的。因此,每個Web請求都會啓動一個新線程,並且如果該線程死亡,它只會影響該Web請求。但是對於獨立的Java應用程序,我們應該如何處理它?
感謝您的快速解答。我現在的做法是捕獲PersistenceException並拋出一個PersistenceCheckedException(我自己的類),然後根據正在做什麼處理它。要麼忽略它(如果數據庫插入不重要)或放棄數據庫插入(並且客戶端可以再試一次)。這聽起來不錯嗎? – GreatFire