0
我想知道,是否有可能迫使Hibernate在與用戶會話線程相同的線程中調用我的自定義RevisionListener? (GWT) 我需要這樣的行爲來存儲修改名稱的用戶,誰正在進行更改。Hiberate Envers和線程
我想知道,是否有可能迫使Hibernate在與用戶會話線程相同的線程中調用我的自定義RevisionListener? (GWT) 我需要這樣的行爲來存儲修改名稱的用戶,誰正在進行更改。Hiberate Envers和線程
hibernate和envers引擎在啓動框架的線程上運行,並且沒有辦法將偵聽器的執行委託給其他線程。
您的收聽需要,應通過或在調用時提供與你的聽衆可以使用ThreadLocal
查找值,並用它很像基於Spring Security的應用程序如何通過SpringSecurityContextHolder
得到修訂聽衆此信息的信息。
我想我不明白 - 如果envers在某個特定的線程上運行,是不是ThreadLocal總是返回相同的對象? – mnowak
@mnowak Envers和hibernate在同一個線程上運行。如果您正在進行會話操作的那個線程無法訪問您需要的任何上下文,則需要將其傳遞或使其可用。這是您的GWT應用程序的線程模型問題,而不是休眠。 – Naros