如何使用com.google.appengine.api.datastore.Text

时间:2010-12-02 21:35:04

标签: java php google-app-engine quercus

我使用Quercus在谷歌应用引擎上运行php,并使用下面的代码将值插入GAE数据存储区(BigTable)。

<?php
import com.google.appengine.api.datastore;
import com.google.appengine.api.datastore.Entity;
import com.google.appengine.api.datastore.DatastoreServiceFactory;

$entity = new Entity("test"); 
$entity->setProperty('story',' --- more than 500 char ---');
$dataService = DatastoreServiceFactory::getDatastoreService();
$dataService->put($entity);
?>

但返回流动错误,因为故事值超过500个字符。

error:
com.caucho.quercus.QuercusException: com.google.appengine.api.datastore.Entity.setProperty: story: String properties must be 500 characters or less. Instead, use com.google.appengine.api.datastore.Text, which can store strings of any length.

我不知道关于java的任何事情。 有没有人知道如何在我的PHP代码中使用com.google.appengine.api.datastore.Text

感谢

2 个答案:

答案 0 :(得分:5)

这会有用吗?

<?php
import com.google.appengine.api.datastore;
import com.google.appengine.api.datastore.Entity;
import com.google.appengine.api.datastore.DatastoreServiceFactory;
import com.google.appengine.api.datastore.Text;


$entity = new Entity("test"); 
$TextValue = new Text(' --- more than 500 char ---');
$entity->setProperty('story',$TextValue);
$dataService = DatastoreServiceFactory::getDatastoreService();
$dataService->put($entity);
?>

答案 1 :(得分:1)

不是为'setProperty'的第二个参数传入字符串,而是创建一个新的com.google.appengine.api.datastore.Text并将其传入。

看起来你应该知道如何做到这一点。

请在此处查看“setProperty”的定义:http://code.google.com/appengine/docs/java/javadoc/com/google/appengine/api/datastore/Entity.html