У меня проблема: когда я сохраняю свой объект в БД, он работает нормально, но когда я хочу получить его из БД, он не работает. Я использую selectItemsConverter
из Omnifaces 1.8.3 (я пробовал с 1.10 тоже)SelectItemsConverter Omnifaces, предварительно выбранный из базы данных
AutomacaoEmail.java
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
...
@ManyToOne(fetch = FetchType.EAGER)
private ModeloEmail modeloEmail;
...
@Override
public int hashCode() {
int hash = 7;
hash = 31 * hash + Objects.hashCode(this.id);
return hash;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final AutomacaoEmail other = (AutomacaoEmail) obj;
if (!Objects.equals(this.id, other.id)) {
return false;
}
return true;
}
@Override
public String toString() {
return String.format("%s[id=%d]", getClass().getSimpleName(), getId());
}
loadFromDatabaseMethod()
List<ModeloEmail> modelosTemp = modeloEmailFacade.buscarTodos();
SelectItemsBuilder selectItemsBuilder = new SelectItemsBuilder();
if (modelosTemp != null) {
for (ModeloEmail modeloEmail : modelosTemp) {
selectItemsBuilder.add(modeloEmail, modeloEmail.getNome());
}
modelosEmails = selectItemsBuilder.buildList();
}
page.xhtml
<p:selectOneMenu value="#{automacaoEmailsController.automacaoEmail.modeloEmail}" converter="omnifaces.SelectItemsConverter">
<f:selectItem noSelectionOption="true" itemLabel="Selecionar um modelo"/>
<f:selectItems value="#{automacaoEmailsController.modelosEmails}"/>
</p:selectOneMenu>
Я пробовал с SelectItemsIndexConverter
тоже.
Я использую eclipselink. в моем случае он никогда не работает. Это не сработало с предлагаемой модификацией. –
Тогда проблема не отображается в представленной до сих пор информации. Какой сервер? Какая версия PF? Что, если вы замените 'noSelectionOption =" true "' на 'itemValue =" # {null} "'? Что, если вы замените '' на ''? –
BalusC
Im помощью: -Glassfish сервер 4.x -pF 4.0.21 Я уже удалил эту строку: '<е: SelectItem noSelectionOption = "истинный" itemLabel = "Selecionar гм Modelo"/>' не работал. Я изменил на '' .. did not work. Я пробовал: 'Список ', 'Список ', 'SelectItem []' ..didnt work. никаких ошибок не возникает. Я помещаю inputText рядом с «select», и значение отображается правильно. Я создал метод для подзарядки значений и обновления формы, но не работал. Я воссоздал таблицы в базе данных, а также создал пустую страницу только с данным компонентом. Не работал. –