【问题标题】:How to check if a detached entity is changed?如何检查分离的实体是否已更改?
【发布时间】:2012-11-08 12:31:31
【问题描述】:

我有 JSF 项目。我有 JPA 实体来保存数据。 在前端,用户可以编辑分离的实体并通过单击保存按钮将日期发送到后端。

但有可能用户忘记保存数据并单击项目中的另一个页面。在这种情况下,应用程序应该警告用户用户丢失了未保存的数据。

是否可以检查分离的实体是否已更改?

【问题讨论】:

  • 不要将 JPA 概念(分离)与 JSF 概念(托管 bean)和 javascript 功能混为一谈
  • @SJuan76 你到底是什么意思?我的项目中有 JSF 和 JPA。我的问题是检查分离实体中的数据是否在 JSF 页面上发生更改
  • 我认为@SJuan76 的意思是没有必要一直到堆栈到数据库来检查用户是否更改了浏览器中显示的字符串 - 它可以是在浏览器中检查。
  • @kostja 正是如此,为了确保新旧字段保持相同的值,您无需知道原始值的来源。

标签: java jakarta-ee jsf-2 entity


【解决方案1】:

由于您希望页面对此进行控制,因此您应该使用 javascript 进行控制,这是控制浏览器何时要卸载页面的唯一框架。

定义body.onunload 处理程序,并将来自您的JSF bean 的数据放入两次;一次在版本字段中,其他在隐藏字段中。在 onunload 中,比较 hidden 和 edition 字段。如果您使用 ajax,请在 save 按钮 oncomplete 中(或使用 render 属性,使用新值更新隐藏字段)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-17
    • 1970-01-01
    相关资源
    最近更新 更多