Я использую MongoDB, Spring Data и Spring MVC. У меня есть модель пользователя, которая имеет список контактов:Проверьте, существует ли объект пользователя в списке @DBRef <User>
class User {
@DBRef
private List<User> contacts = new ArrayList<User>();
public List<User> getContacts() {
return contacts;
}
}
Я в настоящее время есть 4 пользователей внутри моей базы данных. 1 пользователь имеет конкретный контакт (который относится к той же коллекции по id).
Теперь я хочу проверить, имеет ли пользователь конкретный контакт. Я использую следующий код:
User userLoggedIn = userService.getLoggedInUser(); //user object
User contact = userService.findById(contactId); //contact
if(userLoggedIn.getContacts().contains(contact)) {
System.out.println("Has this contact.");
}
Это сообщение выхода не отображается. Однако, если я распечатаю список контактов пользователя и их идентификатор, я ясно вижу, что контакт вставлен в список пользователя.
Я заметил, что если я напечатаю хэш-код контактного объекта и тот, который находится внутри списка, я получаю другое значение, поэтому я предполагаю, что, хотя детали одинаковы, сам объект не является.
Как я могу подойти к этой проблеме, просто проверив, находится ли он в списке. Или мне просто сравнивать по id?
В противном случае: как проверить, существует ли объект в списке контактов?
Я думаю, что вы ответили себе на ваш вопрос, вам нужно сравнить с помощью Id. – faljbour