Google Cloud Objectify - Ошибка при сохранении объекта - PullRequest
0 голосов
/ 05 мая 2020

Я хочу сохранить объект и, кажется, падает, потому что я пытаюсь проиндексировать HashMap со списком.

Вот мои классы:

** IndicadorEntity **

@Entity
public final class IndicadorEntity {
    private @Index Map<String, List<ObjetivoEntity>> objetivos;
}

ObjetivoEntity

package com.eulen.google.efqm.datastore.entities;

import java .util.Date;

public final class ObjetivoEntity {
    private double objetivo;
    private boolean variable;
    private Date fechaCreacion;
}

При попытке сохранить IndicadorEntity я получаю следующую ошибку:

com.googlecode.objectify.SaveException: Error saving com.eulen.google.efqm.datastore.entities.IndicadorEntity@694e7f0b: objetivos.2: java.util.ArrayList is not a supported property type.

Если я удалю @Index, он работает, но мне нужно знать, какой IndicadorEntity имеет нулевые цели.

Спасибо.

1 Ответ

2 голосов
/ 05 мая 2020

Существуют ограничения на то, что будет индексировать хранилище данных. Однако вы почти всегда можете обойти это, создав индекс Syntheti c.

Например, вы можете создать поле private List<String> myCustomIndex и заполнить его методом onSave, заполнив его всеми вещи, которые вы хотите найти. Вы можете извлекать информацию из объектов на любой глубине в иерархии объектов.

Затем запросите по вашему индивидуальному индексу: filter("myCustomIndex", somevalue)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...