1 つの @ViewScoped Bean に複数の @ConversationScoped Bean を注入していますが、これにより多くの会話ロックの問題が発生しています。
この問題を修正するために、すべての @ConversationScoped Bean に、新しい会話を開始する前に既存の会話を終了するコード行を追加しました。
begin() に入るとわかるように、新しい会話を開始する前に、以前のすべての会話を終了します。
public void begin() {
if (conversation != null
&& !conversation.isTransient()) {
end();
}
if (conversation.isTransient()) {
conversation.begin();
}
}
これは適切な方法ですか?これにより問題が発生しますか?