Инициализация элементов JPA при отправке данных JSF - PullRequest
0 голосов
/ 29 января 2019

Недавно я получил бизнес-требование для моего приложения JSF, чтобы редактировать строки таблицы данных в самой таблице.

Проблема :

таблица поддерживается списком объектов JPA, но редактируемые поля принадлежат их - необязательным - ассоциациям.Итак, в качестве примера такого редактируемого поля selectOneListbox, если я это сделаю:

<h:selectOneListbox id="rca" value="#{mainEntity.associatedEntity.rca}" converter="omnifaces.SelectItemsConverter">
    <f:selectItem itemValue="#{null}" itemLabel="" />
    <f:selectItems value="#{rcaOptions}" var="rca" itemLabel="#{rca}" itemValue="#{rca}" />
</h:selectOneListbox>

Я в конечном итоге получаю Target Unreachable, 'associatedEntity' returned null при отправке таблицы для тех строк, в которых еще нет связанной сущности, даже если я оставил selectOneListbox неизменным для них (ноль)опция выбрана).

Вопросы :

  1. как / где / когда я могу элегантно создавать новые элементы при отправке формы, только для тех строк, на которых действовал пользователь (ajax- желательно), предотвращая ошибку, показанную выше?Принудительное создание подмножеств в модели для всех строк при первом рендеринге таблицы ИМХО является недостатком дизайна.

  2. Как программно игнорировать это selectOneListbox - или любое другое поле ввода - извесь жизненный цикл JSF, условно, как если бы поле никогда не существовало в запросе?Я попытался реализовать несколько конвертеров и валидаторов, но фаза валидации все еще пытается получить ссылку на значение, независимо от того, что я пытаюсь, выдавая ошибку, показанную выше

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