【问题标题】:get Text property from an entity in google app engine从谷歌应用引擎中的实体获取文本属性
【发布时间】:2012-05-12 17:50:28
【问题描述】:

我使用entityName.setProperty("textProperty", text)将一些大型文本数据作为文本对象存储到谷歌应用引擎数据存储中 其中“文本”是文本类型对象。当我尝试获取文本时,我使用entityName.getProperty("textProperty"); 由于它返回一个对象并将其存储为 Text 对象,因此我只需使用 (Text)entityName.getProperty("textProperty"); 将其转换为 Text 但它给了我java.lang.ClassCastException: java.lang.String cannot be cast to com.google.appengine.api.datastore.Text 所以看起来应用程序将其存储为字符串,所以我这样做(String)entityName.getProperty("textProperty"); 但它给了我这个 java.lang.ClassCastException: com.google.appengine.api.datastore.Text cannot be cast to java.lang.String

我很困惑:如何从数据存储中获取 Text 对象?

【问题讨论】:

  • 我可以认为您现在已经解决了这个问题吗?如果是这样,你是怎么做到的?
  • 如果你现在已经解决了这个问题,也许你应该回答这个帖子来关闭它?
  • 你能发表一下你是怎么解决的吗?

标签: google-app-engine google-cloud-datastore


【解决方案1】:

我在 Google APP Engine 中使用 JPA 映射 TextProperty 时使用以下代码解决了我的问题。

我定义了一个Text属性内容,每当我做一个Set:我都会传递Text。每当我执行 Get 时,我都会使用 getValue() 方法返回一个字符串。它适用于我。

@Column(name="content")
private Text content;
public void setContent(Text content) {
    this.content = content;
}
public String getContent() {
    return content.getValue();
}

【讨论】:

    【解决方案2】:

    我使用Text text = new Text(String); 将字符串转换为文本,使用String s = text.getValue(); 将文本转换为字符串。

    【讨论】:

    • 当然,您上面提到的并不是严格意义上的Text text = (Text)object; 强制转换,而是使用Text 构造函数和方法从另一种对象生成一种类型的对象。
    猜你喜欢
    • 1970-01-01
    • 2013-08-09
    • 1970-01-01
    • 1970-01-01
    • 2013-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多