2013-03-20 61 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')。