В Java У меня есть сущность с вложенными объектами:
public class MyData {
@Id
public UUID id;
@Field(type = FieldType.Nested)
public List<Entry> entries = new ArrayList<>(); // Entry is the class with two fields: String and int
}
Я хочу обновить entries
, добавив новый экземпляр 'Entry'.
Script script = new Script(
Script.DEFAULT_SCRIPT_TYPE,
"painless",
"ctx._source.entries += params.entry",
new HashMap<>(){{put("entry", value}}
);
Если значение json, то я получаю ошибку:
Невозможно привести java .lang.String к java .util.ArrayList
Если значением является сам объект: new Entry("abc", 0)
, то я получаю сообщение об ошибке:
java .lang.IllegalArgumentException: невозможно записать xcontent для неизвестного значения типа класс com.x.dto.Entry. И он также не принимает Map.
Я понимаю, что это должно быть очень просто, но не нашел, как создать экземпляр требуемого объекта.