Java googleappengine字符串到文本
我有一个实体字段,它已经作为字符串保存在数据存储中。appengine中的字符串最多可包含500个字符Java googleappengine字符串到文本,java,google-app-engine,Java,Google App Engine,我有一个实体字段,它已经作为字符串保存在数据存储中。appengine中的字符串最多可包含500个字符 如何将其更改为文本并使所有旧值仍然可用?您必须使用db.TextProperty,但无法为该属性编制索引 要使用它: class Example(db.Model): .... content = db.TextProperty() content_text = db.Text(example.content) or example.content = db.Tex
如何将其更改为文本并使所有旧值仍然可用?您必须使用db.TextProperty,但无法为该属性编制索引 要使用它:
class Example(db.Model):
....
content = db.TextProperty()
content_text = db.Text(example.content)
or
example.content = db.Text(content_text)
对于这样的任务,我使用了一个带有action参数的servlet来执行db操作。在您的情况下,更新实体类,遍历实体并相应地设置值。我推荐以下方法,尤其是在代码正在生产的情况下:
- 在实体中引入新的文本字段
- 编写一个简单的迁移代码,遍历每个实体,然后从String属性中读取现有值,并将其放入新的Text属性中
- 将当前代码修改为仅从新文本属性中写入和读取
上述方法将帮助您逐步完成工作,在出现问题的最坏情况下,至少您拥有旧属性和旧值 只需将字段提取为文本即可。它会起作用的。无需将现有值迁移到新字段和所有字段 在java中,还有一个com.google.appengine.api.datastore.Text:Text字符串,最长可达1兆字节。是的,问题是我需要新的insert包含文本,并使以前的字符串仍然可以读取。请记住,TextProperty不能被索引