我正在尝试使用 Objectify @IgnoreSave 注释以及简单的 If 条件(IfEmpty、IfNull),但似乎它不起作用。如果没有 If 条件,实际值不会按预期保留,但是,当我使用某些 If 条件时,它始终会保留(例如,如果使用 IfNull 条件并提供 null 值,则会保留它,从而删除数据存储中的原始值)。
...
@IgnoreSave(IfNull.class)
private String email;
...
...
this.objectify.save().entity(userDetails).now();
...
是否需要额外配置?或者有人有同样经历吗?
最佳答案
从“因此数据存储中的原始值被删除”看来,您似乎误解了 GAE 数据存储的基本特征 - 实体是整体存储的。如果您 @IgnoreSave 字段,则在保存期间将忽略该字段,因此该字段将不会出现在数据存储中。您无法更新某些字段,也无法更新其他字段。
关于java - 在 Objectify 4 中保存时忽略一些实体字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18882091/