как использовать com.google.appengine.api.datastore.Text - PullRequest
4 голосов
/ 03 декабря 2010

Я использую 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);
?>

, но возвращаю текущую ошибку, поскольку значение истории превышает 500char.

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-коде.

спасибо

Ответы [ 2 ]

5 голосов
/ 03 декабря 2010

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

<?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 голос
/ 03 декабря 2010

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

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

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

...