我有一个Entity / JSF Managed Bean Ticket
代表一个帮助台
票。
它有status
属性;当状态设置为closed
我想要的时候
将closingDate
属性的值更改为当前系统时间。
但我认为代码应该包含在bean中,就像每次一样
门票关闭时应记录下来。
管理它的正确方法是什么?我有几个想法。
creationTime
私有的setter,并在更改时更改其值
调用status
setter。快速而快速,但改变了二者
属性。此外,迫使我使用JPA字段访问(没有太大的问题
因为我已经在使用它,但仍然是一个限制),我不清楚
bean序列化后会发生什么。status
属性成为绑定属性,如JavaBeans中所述,
并使类PropertyChangeListener
成为自己。很正式,但是
我的比喻有点过于复杂。close()
。我会这样,但它可以做到
我使用JSF很复杂。我赞成1)或3),但我想知道是否有更好的方法。
答案 0 :(得分:0)
我不知道是否有人可以通过正确的方式来管理它,因为可以像许多方法一样为许多不同的方法做出争论。要添加到列表中作为1)和3)的组合,例如:
status
设置为已关闭并将两个设置者都公开时,请设置creationTime
更新status
的设置者。从JPA的角度来看,我并不知道这有什么不利之处。然而,我建议反对的是拥有 Entity / JSF Managed Bean 。我建议有两个,一个Entity bean和一个JSF Managed Bean。通过这种方式,您的Entity bean可以保持为 dumb ,而您的JSF Managed Bean将具有 smart 方法,如close()
或reopen()
并且包含对Entity bean的一系列 dumb 调用。此外,您可以在persist()
中执行@PreDestroy
之类的操作。易于开发,易于维护,易于制定决策。希望你能发现这有用。