2013-03-20 63 views
0

我正在使用spring Connection連接準備程序的配置,其中我有一個要求來爲獲取的每個連接設置客戶端標識符,並且可以在數據庫策略中使用該標識符。在這裏,我有一個問題,當多個請求並行時,由於用戶名傳遞給我正在使用的連接準備程序,它正在變得混亂。休眠中的clientidentifier

我完全遵循下面從春天使用彈簧罐給出的鏈接。

http://static.springsource.org/spring-data/jdbc/docs/current/reference/html/orcl.connection.html 我正在做的一個額外的事情是在我的客戶端標識符類中有一個變量用戶名,並有一個setter和getter方法,並將其作爲存儲過程的參數調用。

我的問題是,當有並行事務被注入的客戶端標識符單例bean有一個我已經通過的用戶名的舊副本。

是否還有其他更好的選項來設置一個動態方法來將請求的用戶名傳遞給這個bean,並且在檢索這個bean時它應該返回正確的值。

任何幫助表示讚賞。

回答

0
  1. 使用ThreadLocal變量創建實用程序(靜態變量/方法)類。提供getter和setter。
  2. 創建一個從請求中獲取用戶的過濾器。將此用戶設置爲上面創建的線程本地。
  3. 隨時/隨地調用getter(例如,在調用您所引用的link中的可調用語句之前構建'prepSql')。