Я очень плохо знаком с базами данных на основе документов и использую базу данных Cosmos Document Azure в своем приложении Springboot.
У меня есть такая структура данных:
User:
{
"firstname": "Bob",
"password": "asdf",
"roles": [
{
"rights": [
{
"name": "RIGHT_READ"
},
{
"name": "RIGHT_WRITE"
}
],
"name": "ROLE_ADMIN",
"id": "0d5299e0-836c-494d-9299-e0836c294d55"
}
],
"id": "0a9030f1-30f8-4d23-9030-f130f85d23e7",
"email": "email@mail.com",
"username": "admin",
"lastname": "Martin"
}
Role:
{
"rights": [
{
"name": "RIGHT_READ"
},
{
"name": "RIGHT_WRITE"
}
],
"name": "ROLE_ADMIN",
"id": "0d5299e0-836c-494d-9299-e0836c294d55"
}
Пользовательхранит все роли, которые ему назначены.В этом случае пользователь сохраняет роль ROLE_ADMIN, которая содержит несколько прав.
Если я сейчас обновляю роль ROLE_ADMIN, например, добавляя право и сохраняя его снова в базе данных с помощью documentClient.replaceDocument(docLink, role, null);
, ссылка на эту сущность, которая хранится у пользователя, не обновляется.Пользователь по-прежнему содержит роль с двумя правами вместо трех.
Нужно ли обновлять все ссылки вручную или я что-то упустил?