ひがやすを技術ブログ

電通国際情報サービスのプログラマ

GAEでBlobやTextを定義する方法

Google App Engineでは、500バイト以上のバイトの配列や文字列を格納する型として、BlobやTextを用意しています。これらの型を使うときには、フィールドの型は、BlobやTextにし、getter, setterメソッドは、byteの配列やStringにしておくと、モデルを使う側は、500バイトの制限を気にせず、常にbyteの配列やStringでアクセスできるのでお勧めです。


@Persistent
private Blob xxxBlob;

public byte[] getXxx() {
if (xxxBlob == null) {
return null;
}
return xxxBlob.getBytes();
}

public void setXxx(byte[] xxx) {
xxxBlob = new Blob(xxx);
}



@Persistent
private Text xxxText;

public String getXxx() {
if (xxxText == null) {
return null;
}
return xxxText.getValue();
}

public void setXxx(String xxx) {
xxxText = new Text(xxx);
}


Slim3では、もともとTextとStringを自動的に変換するTextConverterを用意していたのですが、上記のようにプロパティを定義すると必要なくなるので、最新版では削除しました。