【发布时间】:2016-10-04 17:54:32
【问题描述】:
我正在详细解释我的申请中的申请流程。我正在开发一个数据库查看器应用程序。用户可以使用此应用程序查看我的数据库中的所有记录(行),并且可以从 UI 进行编辑。此应用程序运行良好。现在我想实现乐观锁定,因为我在 DB 中创建了一个版本字段。现在我遇到了一个设计问题,
直到现在在我的应用程序中,当用户查看记录并想要编辑它时,在我的控制器方法中,我正在执行 Hibernate 加载并在编辑 JSP 页面中显示结果。现在,当用户在页面上单击“保存”时,我必须保存记录。因为它是一个非常复杂的实体,所以我正在从 DB 中重新填充这个实体并进行更改并进行 Hibernate 保存或更新。
现在,我想实现版本控制,因此我不想在保存或更新之前重新填充实体。不知何故,我想保持我复杂实体的安全,并在我想更新时使用它。在我的情况下,JSP 隐藏表单字段是不可能的。在用户单击“保存”按钮并使用它保存在数据库中之前,我在哪里可以保证我的实体安全?什么是可能的和最好的方法。
更新:
我已经查看了互联网上的各种帖子,并计划实现 EHcache 框架。
【问题讨论】:
-
会议将是一个显而易见的地方。 docs.oracle.com/javaee/5/api/javax/servlet/http/…
-
@AlanHay 但不知何故,现在当我这样做时 (session.getAttribute("obj")).equals(DAO.get(...)) 不匹配。我越来越假了。我已经在对象的所有成员变量上验证了 eqauls 方法。他们应该是平等的吧?
标签: java hibernate spring-mvc versioning spring-form