-1

Я применяю приложение, использующее appengine, и также использую JDO.Проблема с использованием консоли запросов Google Datastore

В одном из моих классов сущностей У меня есть ИНТ свойство:

@Extension(vendorName="datanucleus", key="gae.unindexed", value="true") 
@Persistent 
int numberToStore; 

я был в состоянии хранить объект и доступ к этой недвижимости без каких-либо проблем.

Однако я решил использовать консоль запросов хранилища данных и обновить значение свойства numberToStore с 4 по 5. Тип экрана «Редактировать сущность» на консоли всегда был «Число». теперь я получаю следующее исключение в моем журнале всякий раз, когда я пытаюсь получить доступ объекта из хранилища данных:

com.google.api.server.spi.SystemService invokeServiceMethod: причина = {0} java.lang.ClassCastException: java.lang.Long нельзя добавить в java.lang.Double по адресу com.google.appengine.datanucleus.TypeConversionUtils $ 5.apply (TypeConversionUtils.java:121) в com.google.appengine.datanucleus.TypeConversionUtils $ 5.apply (TypeConversionUtils.java:119)

Почему эта проблема возникает? Изменяет ли значение свойства объекта из консоли администратора изменение типа свойства. Также как я могу отменить это изменение типа для этого конкретного свойства в сущности.

+0

Похоже, это может быть проблемой с новым средством просмотра Datastore. Можете ли вы подтвердить, что вы редактировали объект со страницы на странице https://console.developers.google.com? –

+0

Да, я редактировал сущность со страницы под console.developers.google.com – user3670859

ответ

0

Если вы указали десятичную точку в значении (например, 5.0 вместо 5), она будет рассматриваться как float.

В качестве альтернативы вы можете использовать средство просмотра хранилища данных, доступное в консоли администратора App Engine (https://appengine.google.com -> Datastore Viewer), чтобы изменить тип значения обратно на float.

Обратите внимание, что для изменения типа имущества требуется два сохранения: один раз, чтобы установить тип свойства null и один раз, чтобы изменить его на float.

+0

Спасибо за ваш комментарий Ed – user3670859

Смежные вопросы