java - 在 Objectify 4 中保存时忽略一些实体字段

标签 java google-app-engine objectify google-cloud-datastore

我正在尝试使用 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/

相关文章:

java - Android 解析 xml 文件时出错

javax.命名.NameNotFoundException : Unable to connect to derby database

java - 如何配置 Spring BeanPostProcessor 使其仅针对一组已定义的 Spring 托管 bean 进行调用

java - Selenium Facebook 安全检查的验证码不可见

python - 谷歌应用引擎计数

android - 谷歌云端点、对象化和持久性

google-app-engine - 不使用 GWT 的 Google App Engine Eclipse 插件

jquery - 带有 jquery 的 Django 模板 : Ajax update on existing page

java - 使用 App Engine 存储的字符串的最大长度?

java - Google App Engine 数据存储实体未被删除