Для этого используется 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: значение недействительно .
Если Вы просто добавили новую таблицу, просто обновите свой класс Базы данных (Что один класс, расширяющий RoomDatabase () класс), и обновите аннотацию объектов
@Database(entities = [User::class, NewTableHere::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
Желание, это экономит Вам время при поиске ответа, счастливом кодировании.
Это помогло мне много видеть статьи. У меня был этот errorDatabase (объекты = {Folder.class}, версия = 1, exportSchema = ложь)
просто добавляют мой другой класс @Database (объекты = {Folder.class, Urls.class}, версия = 1, exportSchema = ложь)