App Engine JDO 架构更改。更新新的不可空值

发布于 2024-08-20 01:08:59 字数 567 浏览 0 评论 0原文

不可为 null 的类型包括 int 和 boolean。我的问题是如何更新已经通过架构更改持久化的对象,添加这些类型的新变量。似乎我无法检索这些对象,因为它们现在有一个 null 变量,其中不允许 null!

根据:http://code.google.com/appengine /docs/java/datastore/dataclasses.html#Object_Fields_and_Entity_Properties

如果字段不是可为空值类型,则加载没有相应属性的实体会引发异常。如果实体是从用于重新创建实例的同一 JDO 类创建的,则不会发生这种情况,但如果 JDO 类发生更改,或者实体是使用低级 API 而不是 JDO 创建的,则可能会发生这种情况。

这是否意味着无法将这些类型的变量添加到我的架构中?

The non nullable types include int and boolean. My question is how to update objects that are already persistent with a schema change adding a new variable of these types. It seems as though I cannot retrieve these objects because they now have a null variable where null is not allowed!

According to: http://code.google.com/appengine/docs/java/datastore/dataclasses.html#Object_Fields_and_Entity_Properties

If the field is not of a nullable value type, loading an entity without the corresponding property throws an exception. This won't happen if the entity was created from the same JDO class used to recreate the instance, but can happen if the JDO class changes, or if the entity was created using the low-level API instead of JDO.

Does this mean it is impossible to add a variable of these types to my schema?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

凉风有信 2024-08-27 01:08:59

您可以添加新属性,但它们需要能够接受 null,这意味着两件事:

  1. 您不能添加基元。您必须使用 Integer 和 Boolean,而不是 int 和 boolean。

  2. 您的代码必须准备好让属性为 null。

You can add new properties, but they need to be able to accept nulls, which means two things:

  1. You cannot add primitives. Instead of int and boolean, you have to use Integer and Boolean.

  2. Your code must be prepared for the property to be null.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文