Как изменить или удалить цель отношения объекта в данных весны neo4j? - PullRequest
0 голосов
/ 17 февраля 2019

Весенние данные neo4j У меня есть простое отношение один ко многим: (:User)-[:EMPLOYEE_OF]->(:Company).Пользователь может быть сотрудником только одной компании.Вот мои сущности:

class User(@Relationship(type = "EMPLOYEE_OF") var company: Company? = null, /* ids etc */)
class Company(/* ids etc */)

Когда я хочу изменить цель этого отношения или удалить его, neo4j продолжает добавлять новые отношения вместо его замены.

val user = userRepository.findByName("user1")
val company = companyRepository.findByName("company1")
user.company = company
userRepository.save(user)

// 2nd case

user.company = null
userRepository.save(user)

В обоих случаях отношениятолько добавляются, никогда не удаляются.Есть ли правильный способ сделать это?

1 Ответ

0 голосов
/ 19 февраля 2019

Вы должны поместить load / find и save в транзакцию.Лучший способ сделать это в проекте Spring - это извлечь логику в метод уровня обслуживания вашего приложения и пометить его как @Transactional.

. В этой транзакции Spring Data Neo4j / Neo4j-OGM может отслеживатьизменения, которые происходят на узле и изменяют или удаляют отношения.

...