我们说我使用objectify从数据存储区load()
实体,然后"修改"属性,然后save()
返回数据存储区。
假设没有任何属性发生变化,例如一个财产已被覆盖"用它的先前价值。
客观化仍然会执行save()
或者足够聪明,意识到没有真正的变化而忽略了保存。
换句话说:客体化是否假设存在变化只是因为我写了一个属性,或者它是否会实际查看属性以确定是否存在重大变化?
答案 0 :(得分:2)
简而言之,您的问题是:Objectify是否提供脏变化检测?
不,它没有。至少目前不是。这有点令人讨厌,特别是当你想调用几个可能改变对象的方法时 - 你不想执行多次保存。
我已经在我的实体中编写了这样的代码:
public void setFoo(final String value) {
if (!Objects.equals(this.foo, value)) {
this.foo = value;
ofy().defer().save().entity(this);
}
}
这是一种穷人肮脏的变化检测。