【问题标题】:There is a downside to overwrite an object instead of update appengine storage?覆盖对象而不是更新 appengine 存储有缺点吗?
【发布时间】:2012-07-04 03:37:27
【问题描述】:

我有这样的课程:

class myclass{
    Long id;
    String a;
    Text b;
}

在 appengine 文档的示例中,要更新对象,我们必须从 DataStore 中恢复它,修改它,然后关闭 PersistenceManager。 如果我覆盖它而不从 DataStore 中恢复它会怎样? 我已经缓存了那个对象,所以我有你的 id 和其他属性

【问题讨论】:

  • 听起来容易出现竞争条件。
  • @Thomas:在 App Engine 上,load-modify-store 也不能防止由于并发更新而导致的竞争条件。

标签: java google-app-engine


【解决方案1】:

您可以直接覆盖它而无需先加载以前的值。 (盲目更新)

但是,如果您需要知道这些旧值,例如仅对某些字段进行部分更新,这将不起作用。

【讨论】:

  • 所以文本属性被删除或盲更新更新?
  • 当您存储对象时,它的所有属性都将重置为 Java 对象所具有的任何属性。不会保留旧值。没有部分更新(就像你可以在 SQL 中做的那样)。
猜你喜欢
  • 2018-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-26
  • 2021-02-20
  • 1970-01-01
  • 2020-04-21
  • 2018-12-13
相关资源
最近更新 更多