conversation.end が呼び出されたときに conversation.id はリセットされませんか?
シナリオ: CRUD で会話スコープを使用するアプリがあるため、リスト ページにアクセスすると会話が開始されます。詳細に移動し、[戻る] をクリックすると、会話が終了し、会話が再開されます。しかし、デバッグ モードにいる間に、conversation.end() が呼び出されると、conversation が null に設定されることがわかりました。次に、conversation.begin() を再呼び出しすると、conversation.id は 1 にリセットされず、最後の値 + 1 にリセットされます。そのように動作するのは正しいですか?
さらに不可解なのは、ログアウトして再度ログインした後、conversation.id が最後の値 + 1 を取得することです。
私の環境:javaee-apiを使用したJboss 7.1.3。
protected void beginConversation() {
if (conversation.isTransient()) {
conversation.begin();
}
}
protected void endConversation() {
if (!conversation.isTransient()) {
conversation.end();
}
}
したがって、基本的に、すべてのバッキング Bean によって拡張された基本エンティティ (上記のコードが定義されている場所) があります。リスト ページがレンダリングされると、beginConversation が呼び出されます。詳細ページで戻るボタンをクリックすると、endConversation が呼び出されます。