2014-01-17 3 views
0

Im пытаясь положить ключ блоб в собственность субъекта и Im receieving следующее сообщение об ошибке:Сохранение ссылки на Blob в Entity

/api/get/tmr 
java.lang.IllegalArgumentException: The string property st has a value that is too long. It cannot exceed 500 characters. 

Мой код:

BlobKey k; 
k=BlobUtil.pBE(d,DT,"st"); 
DT.setProperty("count",count); 
Object O; 
O = DT.getProperty("st"); 
String cl = O.getClass().getName(); 
String Cl = O.getClass().getCanonicalName(); 
log.info(" st property |"+DT.getProperty("st")+"|"+cl+"|"+Cl+"|"); 
datastore.put(DT); 

Ошибка исходит из последней строки:

TMComputation TMR: st property |<BlobKey: AD8BvulOBPut_iHAT4caaMyjl_X0qhnd5gT7IIP-UI-Q7wuY-XS2kuT1yzKWUo98M9YA5dld_3LG7CEAIER5La6x-Gz7zAAmnlGakhgHydkIFAujBYZ3ffRtya3ECcehqlHQDYdyqQVeS2ZmtbpfL4hUT3pTNiBCwJOIeFjO2qZGDycVSe_VJIddH87vuyH2R0ZrU_jxDtLEJ2pbtVaxnC96AS8BBSTzlKtNVjNilfNAUydmDwXqknmN4jOZLIPKhivUnv_ohEHjWo8J-CJsvHZcZQnqoIQBR9yF6JvWHWqxbkMDSvUkePAYXywcsziNn2t76dVh8jKnSGAQkU2FbufgMBKkSCASakcnpz76P8RHWn3VcYyflHQXLSXNLUmuiK-yPv9QR6NXGQ8Uyy2v4Bl9JzHP5v1PnzJDCc3Zwj9ytMeww7K_nyQuXJZw9J8oQpSitXSKmdqHVQHvbtSxFzZmlU59WyEwYgoW1ID0nRpiYwh30QrIXAQrm0AHdcN-ji_D44xSmP4dm3eFZQ2iglRz-71C_Wanbw7ZYmMrNge7qErHaemeIBXePWx5tLdN7jfaLBA2ho3V6_o2yI2dFseVxzGMfle23GTuSusvuzBA_DfJYFyFjVj0htMCbadMyr3UoP2umPHFPA-F-oD2o5i7tsLkjoIAWV5njbBsPtUYq3_66r1jomE3bbEYnV5KvnM4vEEyd2g_1_XCg-476vB9AaKoaxLQfZWPL5pLu5mIqXJYIcimUzOoxLH6deEmU08N7476CjjpouIMPdlRxCu_HBsf_0LMLrkQpuRmLxq5Z-lhtfEfYdAUFdSZfa-evaGw8EzVitAe1RaUrnbTv8p-TySJG-H4zrHslv-84PY4grKsNsCTALC0ogCFbCAmyplQikYGYG0Z08bq7RSDvBfcfKJwAcTHCkbkQ9aIId3nKP8LfNzTwR3DsofBrT5xcyJULZoARwktmT13-L_qUUHwtzz4Wt5Z7A>|com.google.appengine.api.blobstore.BlobKey|com.google.appengine.api.blobstore.BlobKey| 

Это показывает, что свойство st содержит ключ blob, а не строку.

ответ

1

В соответствии с документацией, если вы используете Java-тип String, а значение превышает 500 символов, то генерируется исключение IllegalArgumentException.

Обходной путь к этому заключается в использовании текстовой строки (длинной), то есть com.google.appengine.api.datastore.Text вместо java.lang.String. Этот тип данных может содержать информацию до 1 МБ, но имейте в виду, что он не индексируется.

Заканчивать документация на «Свойства и типы значений» в https://developers.google.com/appengine/docs/java/datastore/entities

+0

В документации сказано, что я могу хранить BlobKey, так почему он дает мне ошибку о строке? – lv47

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