InventoryApi的更新函数返回结果的ManagedObjectRepresentation对象。
在我的代码中,我成功地使用了update(),然后尝试更新返回的ManagedObjectRepresentation(例如设置一些片段),再次调用 InventoryApi.update()。
调用这个,我得到一个错误代码 422 和消息:
以下字段不可更新:lastUpdated
这是因为先前返回的对象具有该字段集,REST API 不希望该字段具有值。
现在是我的问题:查看com.cumulocity.rest.representation.inventory.ManagedObjectRepresentation类,我看到lastUpdated字段(第 36 行)有一个用于某些“操作”的@Null注释。
我对此的松散解释是,在 SDK 的某个地方,如果此对象用作 CREATE 或 UPDATE 操作的一部分,则该字段应为空。如果是这种情况,我上面的update()调用带有一个设置了这个字段的 ManagedObjectRepresentation,应该不会导致问题。不是这种情况。
这个@Null 注解的实际用途是什么?我是否错误地使用了 SDK?我知道使请求工作的一种方法是将 lastUpdated 字段设置为 null,但我认为这是@Null -annotation 的目的。
使用 Java 客户端库版本 8.13。