【问题标题】:AppEngine Datastore: storing list of strings with more than 500 charactersAppEngine Datastore:存储超过 500 个字符的字符串列表
【发布时间】:2013-12-01 13:28:31
【问题描述】:

我的 GWT 实体包含一个属性 myDescriptions,它是一个包含 10 个字符串的列表,其中更多的字符串可能超过 500 个字符。

当我尝试为列表中的任何元素赋予价值时,比如元素 3,可能会发生两件事: - myDescriptions.get(3) = stringWithLessThan500Chars; -> 正确完成 - myDescriptions.get(3) = stringWithMoreThan500Chars; -> 它被存储为 element 9(最后一个)为datastore.Text

对此有什么解决方案吗?我尝试将 myDescriptions 创建为 datastore.Text 的列表,但我无法从 EntityProxy 访问它们。

【问题讨论】:

    标签: java google-app-engine gwt google-cloud-datastore requestfactory


    【解决方案1】:

    GAE 有两个数据存储类型的字符串属性:

    1. 短文本字符串索引属性,最多可存储 500 个字符。在 Java 中它被转换为 String
    2. 长文本字符串未索引属性,最多可存储 1MB 字符。在 Java 中,它被转换为Text

    在您的情况下,解决方案是遍历列表并将Text 替换为它的字符串值:

    if(myDescriptions.get(x) typeof Text) {
        String text = ((Text) myDescriptions.get(x)).getValue();
        myDescriptions.set(x, text);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-01
      • 1970-01-01
      • 2013-05-07
      • 2017-08-12
      • 1970-01-01
      • 2014-07-25
      • 2016-10-18
      相关资源
      最近更新 更多