выберите одно меню, не выбрав пункт [дубликат]

3
задан BalusC 6 May 2015 в 11:31
поделиться

1 ответ

Для этого используется Object#equals() . Вы можете изменить (исправить) это поведение, применив его соответственно к вашей сущности.

private Long id;

@Override
public boolean equals(Object other) {
    return (other != null && getClass() == other.getClass() && id != null)
        ? id.equals(getClass().cast(other).id)
        : (other == this);
}

Не забывайте, что hashCode() удовлетворяет equals-hashCode контракт .

@Override
public int hashCode() {
    return (id != null) 
        ? (getClass().hashCode() + id.hashCode())
        : super.hashCode();
}

Если вы не можете изменить существующий объект по какой-то неясной причине, оберните его в свой собственный DTO.

Конвертер преобразует только объект и его уникальный String для использования в выводах HTML и HTTP-запроса и поэтому не влияет на выбор. Это влияет только на потенциальную ошибку Validation: значение недопустимо .

См. Также:

3
ответ дан Community 19 August 2018 в 00:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: