GAE 数据存储 "java.lang.IllegalArgumentException: Property `${property}' contains an invalid nested entity."

GAE Datastore "java.lang.IllegalArgumentException: Property `${property}' contains an invalid nested entity."

过去几天开始收到关于将嵌套地图结构持久化为嵌入式实体的错误。它很早就开始工作了,没有任何问题。

java.lang.IllegalArgumentException: Property metrics contains an invalid nested entity.
    at com.google.appengine.api.datastore.DatastoreApiHelper.translateError(DatastoreApiHelper.java:49)
    at com.google.appengine.api.datastore.DatastoreApiHelper.convertException(DatastoreApiHelper.java:127)
    at com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:97)
    at com.google.appengine.api.datastore.Batcher$ReorderingMultiFuture.get(Batcher.java:115)
    at com.google.appengine.api.datastore.FutureHelper$TxnAwareFuture.get(FutureHelper.java:171)
    at com.googlecode.objectify.cache.TriggerFuture.get(TriggerFuture.java:100)
    at com.googlecode.objectify.impl.ResultAdapter.now(ResultAdapter.java:34)

也已经 属性 未编入索引。从技术上讲,它应该忽略 1500 字节的限制。我认为他们做了一些改变来限制这一点。

此错误未在任何地方记录。

此错误的一个原因可能是您直接发送了 protobuf 并序列化了一些根本不是有效实体的字节。

在嵌入式地图中,您不能使用包含点的键,这些键在新 API 中具有特殊含义。如果你的键中必须有点,你可以使用 @Stringify Stringifier 来转义它们

如果您要保留嵌入式地图,请进行清理以避免此类异常。

在这里找到原因:https://github.com/objectify/objectify/wiki/UpgradeVersion5ToVersion6