2014-12-05 30 views
0

我在如何维护JSF中实体的状态方面苦苦挣扎。具体来说,可以说我想对其中一个执行简单的CRUD操作。我将一组实体的属性绑定到一个表单,我在表单中做了一些更改,但是随后我取消了它。我的页面在服务器上的bean中的实体仍然被修改。 (假设用户界面实际上将表单数据提交回来,因为它在编辑它时使用了一些动作监听器来更新表单)。在JSF中还原修改的实体的最佳实践?

人们如何处理将实体还原到其原始状态?

  • 您是否总是在将它们绑定到表单之前备份/克隆您的实体?这在编程上看起来像很多工作。
  • 或者当您取消时,您是否总是从数据库中重新获取数据?这似乎是对数据库操作的浪费。

只是想知道我是否错过了一些东西。

回答

1

大概克隆实体&然后更新它是一个更好的方法。

以这种方式,您可以保留您的初始值&可以做比较/验证等,如果需要的话。在某些情况下向最终用户显示他/她所做的更改;更多使用案例涉及审计等。

此外,当您已经获取该实体时,不建议返回数据库。

+0

对,唯一的问题是不得不为我们使用的每个实体编写一个克隆操作......而且我们有很多这样的操作。 – wsaxton 2014-12-06 18:36:09

+0

@wfsaxton我认为有几个库可用于克隆一个对象,你尝试,因为你有很多的实体;可能会避免为每个人执行。 – 2014-12-06 18:48:49