I есть этот класс, который я хочу сохранить с помощью Objectify, этот класс будет представлять данные размером более 1 МБ, поэтому есть список объектов Blob, который представляет фрагмент сохраненного массива байтов размером менее 1 МБ:
@Entity
public class BigBlob {
@Id
private Long id;
public static final int FRAGMENT_LIMIT = 777 * 1024;
@Serialized
private List<Blob> fragments = new ArrayList<Blob>();
...
}
Тем не менее, "фрагменты" - это @Serialized, что сделает размер этого класса/объекта BigBlob больше 1 МБ.
Причина этой ошибки:
com.google.apphosting.api.ApiProxy$RequestTooLargeException: The request to API call datastore_v3.Put() was too large.
Если я использую аннотацию @Embedded, я получаю следующую ошибку:
Cannot place array or collection properties inside @Embedded arrays or collections
Как мне убедиться, что «фрагменты» хранятся как отдельный объект?
Кстати, у меня уже есть логика разделения байтов, которая нарезает весь массив байтов и помещает фрагменты в Список
из Блоба
, так что этот вопрос не относится к тому, как нарезать байт.
В основном то, что я хочу знать, касается настойчивой стороны.