2016-07-20 5 views
0

私は正しい道にいるかどうかわからない。私のアプリケーションでは、jdbc接続が作成され、プロセスによってはそのトランザクションでコミットが呼び出されます。同じフローでは、スレッドが作成され、再び同じプロセスを呼び出してコミットを実行します。しかし、後のコミットは、WHO列の正しいユーザーデータをコミットしていません。 WHO列は、ユーザーセッションから値を取得する必要があります。私はスレッドを作成せずにプロセスを直接呼び出すとWHO列が正しく更新されているかどうかを確認しました。スレッドの作成時に問題が発生しました。アプリケーションはadfモデルを使用して作成されます。 plzはスレッドにユーザコンテキストを渡す方法を提案しています。スレッドにユーザーデータを渡す方法は?

答えて

2

コードを投稿しない限り、あなたの質問に答えにくいです。しかし、あなたの言葉に基づいて、いくつかの変数/データをスレッドに渡すのが難しいと思います。最も簡単で簡単な方法はコンストラクタを使うことです。スレッドクラスを実装/拡張するクラスを呼び出すオブジェクトを作成するときは、そのデータをパラメータとして渡します。次に、呼び出されたクラスのコンストラクタを使用して値を取得し、必要に応じてそれらを使用します。私はそれが助けて、あなたが尋ねた質問に従っていたことを願っています。

0

getterとsetterメソッドでクラスを使用してスレッドにデータを渡し、スレッドを開始する前にオブジェクトを作成してすべてのデータを設定し、getterメソッドを使用してスレッド内で取得できます。

public Class NormalClass 
{ 
    int data = 0; 
    public void setData(int a) 
    { 
     this.a = a; 
    } 
    public int getData(int a) 
    { 
    return this.a; 
    }  
} 

クラスでスレッドセットのデータを開始する前に、その後、runメソッドでは、あなたがそれにアクセスすることができます

あなたは、あなたがより多くの情報を得ることができ、現在のスレッドに関連するいくつかのコンテキストを維持するためにThreadLocalを使用することができます
関連する問題