arturich
@arturich

Что делать с объектом при удалении инфы из базы данных?

Здравствуйте, господа!


Меня мучает один щепетильный вопрос — кто как реализовал обработку такого случая: был объект (допустим ActiveRecord), у него вывали delete() и запись в БД была удалена.


Что далее должно происходить с объектом, ведь он не может удалить сам себя? Делать флаг isDeleted, очищать данные внутри, просто забить на него?
  • Вопрос задан
  • 3144 просмотра
Пригласить эксперта
Ответы на вопрос 3
@egorinsk
Если задаваться целью предусмотреть любые ситуации, то видимо надо ставить флаг и при попытке что-то сделать с таким объектом выбрасывать исключение.
Ответ написан
Flammar
@Flammar
После удаления объекта можно ещё стирать значение первичного ключа — тогда, если что, можно прямо тот же объект корректно вставить в базу «на новенького».

А вообще, ActiveRecord — это bad practice, от которой давно отказались в JAVA ORM-фреймворках, чтоб не засорять доменные объекты посторонней логикой (ответственной за их сохранение), которая может меняться. Теперь правильно — entityManager.delete(object).

Вообще, наличие у объекта сильно сложных методов (т.е. таких, которые принимают в качестве аргументов другие такие же объекты, а не только примитивы), в ситуации, когда нельзя добавлять методы в рантайме, — это tight coupling и, поэтому, bad practice.
Ответ написан
Комментировать
@gleb_kudr
Однозначно флаг. А потом периодически очищать + вакуумировать БД.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы