Я попытался написать службу, имея функцию update(User)
с использованием SDN 4.0.0. Функция должна выглядеть, в ней есть Пользователь в базе данных с тем же идентификатором, и если да, перезапишите этого пользователя новым.Spring Data Neo4j перезаписывает атрибуты
Имея в UserRepository
, который расширяет GraphRepository<User>
я написал следующий код:
User updateUser(User user){
if(userRepository.findOne(user.getId())!=null){
user = userRepository.save(user);
return user;
}else{
//Exception handling here
}
}
теперь у меня есть проблема, что каждое обновление пользователя Я остается, как это было в базе данных, так как с момента, то findOne(id)
, все атрибуты пользовательского объекта будут перезаписаны пользователем, как и в базе данных.
Я уже установил проблему, путем добавления existsById(Long id)
функцию в хранилище аннотированного с запросом «Match (п: Пользователь), где идентификатор (п) = {0}».
Однако меня все еще интересует, почему SDN перезаписывает объект с тем же идентификатором, что и объект, который я пытался получить. Я предполагаю, что есть ссылки, но я не могу увидеть преимущества этого.
Понял, спасибо! – Urr4