Ticket
ヘルプデスク チケットを表すエンティティ/JSF マネージド Beanがあります。
status
プロパティがあります。ステータスが に設定されている場合、プロパティclosed
の値を現在のシステム時刻に変更したいと考えています。closingDate
しかし、チケットが閉じられるたびに時間を記録する必要があるため、コードは Bean に含める必要があると思います。
それを管理する適切な方法は何ですか?いくつかのアイデアがあります。
- setter をprivate にして、 setter が呼び出され
creationTime
たときにその値を変更します 。status
迅速かつ迅速ですが、セッターに 2 つの属性を変更させます。また、JPAフィールドアクセスを使用することを余儀なくされ(すでに使用しているので問題はありませんが、それでも制限があります)、Beanがシリアル化されたときに何が起こるかわかりません。 - JavaBeans
status
で説明されているようにプロパティをバインドされたプロパティにし、クラスPropertyChangeListener
をそれ自体にします。非常に形式的ですが、私の例えでは少し複雑すぎます。 close()
両方のプロパティのセッターをプライベートにし、両方のアクションを実行する非 Bean メソッドを追加し ます。私ならこの方法をとりますが、JSF の操作が複雑になる可能性があります。- 何もしない。Bean をできる限り馬鹿げたままにして、ロジックをコントローラーに移動します。誰も両方の属性を更新するのを忘れないことを願っています。
私は 1) または 3) を支持しますが、より良いアプローチがあるかどうかを知りたいです。