У меня есть JSF преобразователь со следующим методом:JSF конвертер для не-сохранялось сущности
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
Actor a = getEjbCasos().getActorByName(value);
return a;
}
Это называется из SelectOneMenu:
<h:selectOneMenu id="actores" value="#{crearCasosBean.currentActor}">
<f:selectItem noSelectionOption="true"/>
<f:selectItems value="#{crearCasosBean.actorRows}" var="actor" itemLabel="#{actor.name}" itemValue="#{actor}"/>
<f:converter binding="#{actorConverter}"/>
</h:selectOneMenu>
Вместо того, чтобы выбрать актера, пользователь может введите новые имена актеров, которые создают новый объект Actor, но не сохраняются в базе данных. Это имя Актера затем добавляется в список actorRows, чтобы его можно было выбрать в следующий раз.
Проблема, с которой я сталкиваюсь, заключается в том, что поскольку созданный пользователем Актер не был сохранен в базе данных, когда они выбирают этот Актер, конвертер возвращает null. Я не уверен, как сообщить конвертеру, что эта ссылка должна быть такой же, как у первого Актера.