как использовать com.google.appengine.api.datastore.Text

Я использую Quercus для запуска php в движке приложений Google и использую приведенный ниже код для вставки значения в хранилище данных 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. Кто-нибудь знает, как использовать com.google.appengine.api.datastore.Text в моем php-коде.

Благодарность


person Questioner    schedule 02.12.2010    source источник


Ответы (2)


Будет ли это работать?

<?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);
?>
person Jose Vega    schedule 02.12.2010

Вместо передачи строки для второго параметра setProperty создайте новый com.google.appengine.api.datastore.Text и передайте его.

Похоже, вы должны знать, как это сделать.

См. определение setProperty здесь: http://code.google.com/appengine/docs/java/javadoc/com/google/appengine/api/datastore/Entity.html

person MStodd    schedule 02.12.2010