我知道statement.cancel()可以用來取消正在運行的SQL查詢,但是我想知道的是,我將如何在另一個線程中獲得這個語句對象。如何取消正在運行的SQL查詢?
使用案例:
- 我請求開始運行語句的線程。
- 然後從一個單獨的請求(另一個線程)我可能要取消此線程。
如何在此新請求我會得到聲明調用它的取消方法。
有可能會有我運行多個語句的情況。
附加信息,它是一個使用spring框架,hibernate和JPA的web應用程序。現在在用戶界面中有2個按鈕,按鈕1將觸發SQL查詢,按鈕2必須取消該查詢
我參考this示例,但它使用相同的線程來調用新線程,我不能這樣做。
這是查詢是如何開始:
Query query = mEntityManager.createNativeQuery(globalQuery.toString());
List<Object[]> results = query.getResultList();
編輯:
- 的一種方式,我能想到的是保持所有正在運行的語句的歌曲,然後找到一個SQL語句必須被取消。
爲什麼不說這個地方「SQL查詢」是從調用開始? –
所以我有2個客戶端請求,第一個將啓動查詢,第二個應該取消它 – rd22
附加信息,它是一個Web應用程序,使用spring框架,休眠和JPA。現在在用戶界面中有2個按鈕,按鈕1將觸發SQL查詢,而按鈕2必須取消該查詢。 – rd22