【问题标题】:How to save entity using Objectify and keep some values untoutch如何使用 Objectify 保存实体并保持一些值不变
【发布时间】:2012-11-26 16:54:20
【问题描述】:

Objectify 框架使与 Google 数据存储区的交互变得更加容易,我想知道是否可以使用 ofy().save() 实体但只在数据库中更改不为空的值。

因为我创建了实体的一个新实例,但我无法访问它的所有属性值(数据来自 POST,并且缺少关系键之类的东西)我只想更改存储/编辑接收到的属性(像 SQL 更新)。

我尝试使用 @IgnoreSave(IfNull.class),但在保存并检查保存的条目后,未在 save() 时间设置的属性设置为 null,我与其他实体的关系松散。

【问题讨论】:

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


    【解决方案1】:

    如果我理解正确,您有一个已保存的实体 A。您想将 A 的属性(比如说 A.b)更改为某个属性,但保持其他所有内容不变?你应该做的是一个ofy().get(A),改变A.b然后save(A)。

    如果您创建一个新实体 A(来自构造函数),那么该实体将覆盖当前保存的实体。

    【讨论】:

    • 没有办法在 objectify 中单独更改实体(可能使用低级 api 调用,但我不知道)。 Objectify 被设计为在 POJO 级别上工作。
    • 不要忘记在事务中执行此操作以防止丢失更新。
    猜你喜欢
    • 2012-10-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-20
    • 2015-11-13
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多