Не удалось внести запись в таблицу черновиков дочерней записи в шапке

У меня есть сценарий, в котором мне нужно сделать запись в черновой таблице дочернего объекта (таблица основных причин)

«Основные причины» являются дочерними элементами таблицы «Шаг», которая, в свою очередь, является дочерним элементом таблицы «MainRoot». Т.е. «MainRoot» состоит из таблицы «Шаг», а таблица «Шаг» состоит из таблицы «Основные причины».

Я использую DraftService, чтобы сделать запись, как показано ниже.

      @Qualifier("MainRootService") // mainRootService contains projections of 'MainRoot','Step','RootCauses' entites
DraftService draftService;

    public String insertRootCauseDraft()
    {
       Map<String, Object> requestBody = new HashMap<>();
requestBody.put("processUUID","f8ef8a32-09af-4602-a02e-3c32ca913d5d");
requestBody.put("rootCauseUUID","f6245256-6d52-4ac2-b009-82c526e818en");

draftService.run(Insert.into(cds.gen.mainrootservice.RootCauses_.class).entry(requestBody));
draftService.newDraft(Insert.into(cds.gen.mainrootservice.RootCauses_.class).entry(requestBody));

    }

Приведенный выше код выдает ошибку, говоря, что родительский объект MainRootService.RootCauses не найден.

Я попробовал patchDraft, как показано ниже.

      Map<String, Object> requestBody = new HashMap<>();
requestBody.put("processUUID","f8ef8a32-09af-4602-a02e-3c32ca913d5d");
requestBody.put("rootCauseUUID","f6245256-6d52-4ac2-b009-82c526e818ek");

draftService.run(Insert.into(cds.gen.mainrootservice.RootCauses_.class).entry(requestBody));
draftService.patchDraft(Update.entity(cds.gen.mainrootservice.RootCauses_.class).where(p->p.processUUID().eq("f8ef8a32-09af-4602-a02e-3c32ca913d5d")));

но это дает индекс исключения вне связанного индекса исключения 0 размер 0

      requestBody.put("processUUID","f8ef8a32-09af-4602-a02e-3c32ca913d5d");
requestBody.put("rootCauseUUID","f6245256-6d52-4ac2-b009-82c526e818ek");

draftService.run(Insert.into(cds.gen.mainrootservice.RootCauses_.class).entry(requestBody));
Result result = draftService.editDraft(Select.from(cds.gen.mainrootservice.RootCauses_.class).where(p->p.processUUID().eq("f8ef8a32-09af-4602-a02e-3c32ca913d5d")),true);

Это дает: Объект «MainRootService.RootCauses» не является корневым объектом дерева композиции с поддержкой черновика.

Помимо использования DraftService, я также пытался использовать PersistenceService, но это запись записей в активную таблицу, а не в черновую таблицу.

Пожалуйста помоги!

0 ответов

Другие вопросы по тегам