【发布时间】:2012-09-27 18:28:03
【问题描述】:
使用 App Engine 存储 String 字段时:
- App Engine 的
String中的最大length()是多少 datastore 可以处理吗? - 此外,如果使用 Objectify,此最大长度是否相同,或者 Objectify 是否进行了一些影响此最大长度的处理?
【问题讨论】:
标签: java google-app-engine objectify
使用 App Engine 存储 String 字段时:
String 中的最大length() 是多少
datastore 可以处理吗?【问题讨论】:
标签: java google-app-engine objectify
Objectify 会自动将超过 500 个字符的字符串转换为原生文本存储。如果要索引字符串,请小心;文本对象未编入索引,因此大于 500 个字符的字符串将未编入索引。
【讨论】:
我认为对此的回复已经过时,所以我正在更新。我使用的是 GAE 1.9.22 版,并在错误日志中收到了这个:
字符串属性必须为 1500 字节或更少。而是使用 com.google.appengine.api.datastore.Text,它可以存储任意长度的字符串。
使用 com.google.appengine.api.datastore.Text 可以很好地将 String 对象转换为 Text(例如,代码的服务器端上的 new Text(thisString)。任何对com.google.appengine.api.datastore.* 中的库无法在客户端运行。找不到类。
【讨论】:
每个the documentation,500 个字符。不,Objectify 是一个包装器,不会修改您的数据,因此数据大小限制没有改变。
【讨论】:
根据 2016 年 10 月对 Google 数据存储区文档的更新,以下是限制
索引字符串属性的 UTF-8 编码的最大大小:1,500 字节
未索引属性的最大大小:1,048,487 字节(1 MiB - 89 字节)
因此,您可以将大小接近 1MB 的字符串存储在未编入索引的 String 属性中。
【讨论】: