【发布时间】:2014-06-27 03:46:00
【问题描述】:
我有一个要从数据库中检索并显示给用户的名称列表,然后用户将能够编辑它们或保持它们不变。
我想知道如何实现它以将新值与检索到的值进行比较。
假设值如下
ID Value
--------
1 Jack
2 Daniel
3 Allen
4 Nick
一旦显示给用户,他/她就会按照以下方式更改它们
ID Value
--------
1 Jack Moore //moore is added
2 Alex //value is totally changed
3 //value is erased
4 Nick //unchanged
现在我需要更新前两项的值,从数据库中删除第三项,因为它的新值为空白,最后一项保持不变。
@Entity
Class Names {
@Id
@GeneratedValue
private long id;
private long value;
...
}
@Entity
class Students {
@Id
@GeneratedValue
private long id;
@ManyToOne
private Names name;
}
我可以考虑将值列表放入 cookie 并将 cookie 的值与新值进行比较,但不确定这是否是解决问题的最佳方法。
【问题讨论】:
-
如果
ID是主键,您可以在数据库中使用新值覆盖记录。对于空值/空白值,如果要删除记录本身,您可能需要单独检查。 -
@NikhilTalreja 我知道,但问题是我应该使用 cookie 来比较提交的值和持久的值吗?
-
这里不需要 Cookie。只需将整个更新列表带回您的服务器代码并覆盖数据库中的记录。根据需要单独处理删除。
-
@NikhilTalreja 我建议使用 cookie 以避免向数据库发送多个更新请求。
-
在您的示例中,75% 的记录已更改。如果您认为大多数时候都是这种情况,为什么要花时间确定是否需要更新,然后最终至少要更新 3/4 的时间? Cookie 不适用于此类场景。
标签: java hibernate list cookies