Есть пользователь с атрибутом Role, по умолчанию TENANT, используя запрос, который мы задали ему LANDLORD, и в таблице HOUSE он добавляет квартиру с различными атрибутами: описание , цена, city_id и другие. Но вдруг этот пользователь захотел убрать себя из статуса LANDLORD, удалить свои квартиры из нашей базы и снова стать просто TENANT, как в этом случае я могу удалить информацию о том, что у него есть квартиры? Как это сделать, если у него есть квартиры, то их нужно удалить, если нет, то просто поменять статус пользователя на TENANT?

Сначала была идея присвоить нулевое значение, но мне показалось странным, если мы просто обнуляем его, потому что тогда таблица начнет захламляться. Также есть вариант статуса: ACTIVE или BANNED, но мне этот вариант не нравится, потому что его квартира по-прежнему не нужна.

Код выглядит так:

@PutMapping ("/ {id}")
@PreAuthorize ("hasAuthority ('landlord: write')")
public void TenantPostAdd (@PathVariable (value = "id") Long id) {
    User user = userRepository.findById (id) .orElseThrow ();
    Role role = Role.TENANT;
    user.setRole (role);
    House house = houseRepository.findById (id) .orElseThrow ();
    house ... // what's here
}

Полный код

0
Blacit 28 Сен 2020 в 15:13

1 ответ

Лучший ответ

Чтобы построить инфраструктуру такого уровня, мне нужно задать много вопросов, чтобы что-то порекомендовать. Я бы тоже хотел увидеть текущую схему базы данных. Вы также запрашиваете возможность удаления, что может стать проблематичным. Возможно, вы захотите оставить данные, если считаете, что клиент может снова сменить роли. Такая информация основана на условиях соглашения.

Вы не думали построить что-то подобное?

Абсолютный (числовой) режим

0 Нет разрешения --- и т.д ...

https://www.guru99.com/file-permissions.html

Это может быть проблема с подготовленным оператором, в котором отсутствуют соответствующие соединения. Я считаю, что вам следует еще раз взглянуть на схему своей базы данных.

0
Boheyga 28 Сен 2020 в 12:55