[英]Transaction timeout in hibernate and Oracle
您知道如何設置EntityManager.persist()
操作將尊重的事務超時嗎? TransactionTemplate.setTimeout()
在插入記錄期間似乎被完全忽略了。 在我的應用程序中,事務可能會嘗試將行插入到被另一個線程鎖定的表中。 我想跳過等待這個鎖並在應用程序中報告它。
我試圖啟動將中斷事務線程的單獨線程,但 oracle 驅動程序忽略了中斷。 您知道休眠中事務超時的任何可靠機制嗎?
我發現的一種解決方案是使用
((SessionImpl) entityManager.unwrap(Session.class))
.connection()
.setNetworkTimeout(timeoutCleanupExceutor, (timeoutInSeconds + 1) * 1000)
它並不漂亮,但它只是在TransactionTemplate.setTimeout()
被忽略時有效的替代方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.